As of April 2002, these tools are released under the GNU Public License V2.
THESE TOOLS ARE NOT SUPPORTED.

Kev Thacker 2002, amstrad@aiind.upv.es
---------------------------------------------------------------------------



Format_DSK 
==========

This utility will create a blank disk image in the format you specify
so that you can save your own programs on it.

COMMAND FORMAT:

Make_DSK Dsk_filename  disk_format

dsk_filename
	= Filename and path of DSK image to write
	
disk_format
	= Name of the format

e.g.

Make_DSK write df1:programs.dsk format data

NOTE:

The following formats are supported:

DATA
SYSTEM
D1 (ROMDOS/RAMDOS)
D10 (ROMDOS/RAMDOS)

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

Make_DSK 
========

Make_DSK will read any CPC format disk, even copy-protected discs, 
and attempt to make a disk image. (The disk image is compatible with 
CPCEMU). It has been designed so that you can use all your software with 
A-CPC. 

If you have copy-protected software which you would like to use on
A-CPC, then you must connect a 3" disc to your Amiga, or copy the disks to 
3.5".

But, make sure that the copy you make does run on your CPC, otherwise
it will not run on A-CPC either. However, this does not mean that the 
software will work. The emulator doesnt emulate the CPC perfectly 
there are still some hard to find bugs which may prevent the disk from 
loading correctly. This probably applies to disks with heavy copy-protection.

Some protected software relies on error codes returned from the CPC floppy
disk controller.

A-CPC supports some of these errors, but at this date, neither CPCEMU
or CPE do, but I have been talking with the authors about it. So, if
you create disk images from Make_DSK they may not work with CPCEMU or
CPE.

Please Note: I do not authorise or condone the use of this program for
backuping copy-protected software. You will need to obtain permission from
the copyright holder before converting any disk.

COMMAND FORMAT:

Make_DSK 
 DS Unit_Number Destination_FileName No_of_tracks No_of_sides Start_Side

DS
	= If this keyword is present, this feature is active.
          If you have some software on 40 track 5.25" discs (written
          with a 40 track drive on the CPC), but you have a 80 track
          5.25" for Amiga, then use this option. Instead of stepping
          once, it will step twice (or double-track step), so now
          the disk will be converted correctly.

Unit_Number 
	= Amiga drive containing the CPC disk
		e.g. 0, 1, 2 or 3
			
Destination_Filename 
	= Filename and path of DSK image to write
		e.g. ram:dsk_images/north_and_south-1.dsk

No_of_Tracks 
	= Number of tracks to read from CPC disk
		e.g. 40, 42 or 80
	
	  NOTE: Some demos and games use track 40 and 41 to store more
	        data on a 40 track disk. If you are not sure of the
	        number of tracks used, enter 42.

No_of_Sides 
	= Number of sides to read from CPC disk
		e.g. 1 or 2
		
Start_Side 
	= Side to start reading from. (e.g. if you have a side switch
	  on your CPC to use both sides of a 3.5" disc using AMSDOS,
	  you can choose the side to read with this parameter)
		e.g. 0 or 1


e.g.

Make_Dsk 0 df1:dsk_images/north_and_south-1.dsk 40 1 0


NOTE:

For AMSDOS disks:

- 40 tracks (possibly 41 or 42 for copy-protected disks)
- 1 side

For ROMDOS disks:

- 80 tracks
- 2 sides

If you want to convert a CPC disk which needs a special program (on CPC
disk or CPC ROM) to read the format, such as ROMDOS or any other DOS, then
you will need a copy of this program to read the disk image and run
it on A-CPC.

For ROMDOS use SAVEROMS to save a copy of the rom data, and add a 
line to the config file.

I have successfully converted the following to disk image from my
originals (these had some copy-protection):

North & South			Road Runner (US Gold version)
Nightbreed			Target Renegade
Run the Gauntlet
Short Curcuit
Barbarian
Mr.Heli

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

z80_dissassembler 
=================

This utility will dissassemble any file. I originally wrote this file
to dissassemble the roms so I could find out where to patch them and to
work out where I could put breakpoints to test my emulation.

The input file must not have any header. If it did, this would be treated
as Z80 opcodes and dissassembled, so you would have garbage at the start.
The output file is a standard text file which you can load into any editor.

The dissassembler is not intelligent, it doesnt identify areas of text
or data. The output looks like this:

<address>  <z80 opcodes>  <z80 mneumonics>

e.g.

&8000 21 34 12	LD HL,&1234

It does support ALL undocumented opcodes, including the weird LD r,RLC (IX+0)
instructions and SLL!

z80_dissassembler <source file> <destination file> <start address> <length>

e.g.

z80_dissassembler roms:cpc6128-os.rom sources:cpc6128-os.src 0 16384


<source file>
	= device, path and filename of the AmigaDOS file to dissassemble.
	  The file is loaded into memory before disassembly so make sure
	  there is enough free memory to do this.
	  
<destination file>
	= device, path and filename of the AmigaDOS file to write.
	  This file contains the z80 dissassembly of the input file.
	  
<start address>
	= this is a decimal number and defines the address you would
	  like the disassembly to start from (it can be thought of as
	  the load address for the file in z80 memory).
	  
	  e.g. a start address of 32768 would give a dissassembly like this

	  &8000	21 34 12	LD HL,&1234
	  &8003	06 05		LD B,&05

<length>
	= this is the size of the data to dissassemble in bytes. This
	  value is usually equal to or less than the size of the input
	  file.	  

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

From_DSK 
========

This is a utility to transfer files from disk images to AmigaDOS files.

This utility will recognise disks in these formats:
- Amsdos (data, system, NOT IBM!)
- Romdos (D1, D2, D10, D20)


You use it by:

from_dsk <dsk image filename> <dsk image side> <destination path> <cpc user no> <AmigaDOS filecopy spec> [HEADER]

<dsk image filename>
	= device, path and filename of the disk image to extract files from

<dsk image side>
	= side of disk image to read from. This only applies if the disk image
	  has two sides.

<destination path>
	= device and path to write extracted files to

<cpc user no>
	= CPC Amsdos User number to copy from (0..15)

<AmigaDOS file copy spec>
	= name of file(s) to copy. The normal Amiga wildcards are used.

If the HEADER keyword is present, then all files will be saved with a
AMSDOS header. Otherwise no header is saved. If you want to use games
with A-CPC, then make sure you have a Amsdos header on them.

If you are copying rom images from a disk image, then you will not need
to use a header.

----------------------------------------------------------------------------	
From_real 
=========

This is a utility to transfer files from CPC disks to AmigaDOS files.

This utility will recognise disks in these formats:
- Amsdos (data, system, NOT IBM!)
- Romdos (D1, D2, D10, D20)

You use it by:

from_real [DS] <amiga drive unit> <amiga disk side> <destination path> <cpc user no> <AmigaDOS filecopy spec> [HEADER]

DS	= If the DS keyword is present then the program will run in double
	  step-mode. Ideal for 40 track disks in an 80 track drive.

<amiga drive unit>
	= drive number that CPC disk will be read from. Drive Unit 0
	  is the internal drive. (DF0=drive unit 0, DF1=drive unit 1)

<amiga disk side>
	= This is the side to read from (0 or 1), this is useful for
	  3.5" discs which have different formats on each side recorded
	  on a CPC with a side-switch.

<destination path>
	= device and path to write extracted files to

<cpc user no>
	= CPC Amsdos User number to copy from (0..15)

<AmigaDOS file copy spec>
	= name of file(s) to copy. The normal Amiga wildcards are used.

If the HEADER keyword is present, then all files will be saved with a
AMSDOS header. Otherwise no header is saved. If you want to use games
with A-CPC, then make sure you have a Amsdos header on them.

If you are copying rom images from a disk image, then you will not need
to use a header.

----------------------------------------------------------------------------	
format_real 
===========

This utility lets you format any disk to a CPC format on your Amiga.

format_real [DS] <amiga unit> <amiga side> <disk format>

DS	= If this keyword is present it enables double-step mode.
	  This feature allows you to read 40 track disks (written in
	  a 40 track drive) on a 80 track drive.
	  
<amiga unit> 
	= Amiga drive unit containing disk to be formatted to a CPC disk format.
	
<amiga side>
	= Side of disk to format (this only applies if the disk format is
	  single sided). To use this feature on the CPC with 3.5" discs,
	  you will need a side switch.
	  
<disk format>
	= this is the type of CPC format to write. This can be
	  AMSDOS, SYSTEM, D1, D10 etc

The formats supported are the same as format_dsk.
	  
----------------------------------------------------------------------------
dsk2real 
========

This utility does the opposite to make_dsk. This program will convert
a disk image back to the original disk to be used on a real CPC. Some software
doesnt work on the emulator, or you may find your setup isnt fast enough
for some games. If you still own a CPC, you can transfer the software to
CPC disk to play it.

CPC Demos do not work properly with the emulator (I hope to write the 
code so they will), so you can now see the demos in all their beauty on
a real CPC.

This utility was suggested by Maurice.


dsk2real [DS] <amiga unit> <disk image name> <amiga disk side>

DS = If this keyword is present double-step mode is activated.

<amiga unit> = this is the Amiga drive unit of the blank disk which
		will have the CPC data on it.
		
<disk image name> = this is the name of the disk image to convert.

<amiga disk side> = this is the disk side to write the data to. (This
		is ignored if the format is double sided).

----------------------------------------------------------------------------
to_dsk (beta version) 
======

This utility will transfer files from AmigaDOS to disk images.

You use it by:

to_dsk <dsk image filename> <dsk image side> <source path> <cpc user no> <AmigaDOS filecopy spec> [HEADER]

<dsk image filename>
	= device, path and filename of the disk image to put files to

<dsk image side>
	= this is the disk image side to write to. This only applies if the
	  dsk image is double sided.

<source path>
	= device and path to get files from (doesnt work yet)

<cpc user no>
	= CPC Amsdos User number to copy from (0..15)

<AmigaDOS file copy spec>
	= name of file(s) to copy. The normal Amiga wildcards are used.

If the HEADER keyword is present, then all files will be assumed to have
a AMSDOS header. Files with an AMSDOS header are treated as binary, otherwise
they are treated as ASCII files.

----------------------------------------------------------------------------
to_real (beta version) 
=======

This utility will transfer files from AmigaDOS to CPC disks.

You use it by:

to_real [DS] <Amiga drive unit> <disk side> <source path> <cpc user no> <AmigaDOS filecopy spec> [HEADER]

DS	= If this keyword is present it enables double-step mode.
	  This feature allows you to read 40 track disks (written in
	  a 40 track drive) on a 80 track drive.
	  
<amiga unit> 
	= Amiga drive unit containing disk to be written in a CPC disk format.
	
<amiga side>
	= Side of disk to write (this only applies if the disk format is
	  single sided). To use this feature on the CPC with 3.5" discs,
	  you will need a side switch.
	
<source path>
	= device and path to get files from

<cpc user no>
	= CPC Amsdos User number to copy from (0..15)

<AmigaDOS file copy spec>
	= name of file(s) to copy. The normal Amiga wildcards are used.

If the HEADER keyword is present, then all files will be assumed to have
a AMSDOS header. Files with an AMSDOS header are treated as binary, otherwise
they are treated as ASCII files.

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

dir_dsk (beta version) 
=======

This utility will display a directory of a disk image. Very useful when
you want to see what files you want to copy from the disk image.

You use it by:

dir_dsk <dsk image filename> <dsk image side> <source path> <cpc user no> <AmigaDOS filecopy spec> [HEADER]

<dsk image filename>
	= device, path and filename of the disk image to directory

<dsk image side>
	= this is the disk image side to directory. This only applies if the
	  dsk image is double sided.

<source path>
	= not used. Will be removed in final version of utility

<cpc user no>
	= CPC Amsdos User number to copy from (0..15)

<AmigaDOS file copy spec>
	= not used will be removed in final version of utility

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

dir_real (beta version) 
=======

This utility will display a directory of a CPC disk. Very useful when
you want to see what files you want to copy from the CPC disk.

You use it by:

dir_real [DS] <Amiga drive unit> <disk side> <source path> <cpc user no> <AmigaDOS filecopy spec> [HEADER]

DS	= If this keyword is present it enables double-step mode.
	  This feature allows you to read 40 track disks (written in
	  a 40 track drive) on a 80 track drive.
	  
<amiga unit> 
	= Amiga drive unit containing disk to be directoried.
	
<amiga side>
	= Side of disk to directory (this only applies if the disk format is
	  single sided). To use this feature on the CPC with 3.5" discs,
	  you will need a side switch.


<source path>
	= not used. Will be removed in final version of utility

<cpc user no>
	= CPC Amsdos User number to copy from (0..15)

<AmigaDOS file copy spec>
	= not used will be removed in final version of utility

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

SAVEROMS.BAS 
============

This is a program to run on your CPC. It will display a list of ROMs that
are connected (e.g. PROTEXT,UTOPIA, ROMDOS etc). You can choose the name
of the ROM and enter a filename, and it will save the rom data. 

To use this program, transfer it to an Amstrad disk and run it from AMSDOS.

You can use the ROM data  with A-CPC by modifying A-CPC config file.

When you transfer the files to the CPC, make sure there is not a AMSDOS
header, otherwise the rom will not work.

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

SAVEMULT.BAS 
============

This is a program to run on your CPC. It is used to save a copy of the
Multiface 2 rom data. 

To use this program:

1) Copy the files onto a CPC disk,
2) Attach your Multiface to your CPC,
3) Switch on the CPC and run the program from AMSDOS

If everything works well, a file will be saved to the disc called
MULTFACE.ROM.

See the section on the Multiface emulation for more information.

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

SAVEBURN.BAS 
============

This is a program to run on your CPC+. It is used to save the game
Burning Rubber from the cartridge supplied with the Plus. Since the
game is copyrighted, I cannot include a copy with this emulator, so
I have provided this utility to save it, so you can play Burning Rubber
on A-CPC.

To use the program:

1) Copy the files to a CPC disk,
2) With the Burning Rubber/BASIC cartridge inserted run this program
from BASIC,

4 files will be written and they will be called:

BURNROM.1, BURNROM.2,BURNROM.3 and BURNROM.4.

3) Copy these files to an Amiga disk and run the MakeBurnCart
   program. (This will create a Burning Rubber cartridge image suitable
   to be used with the emulator).
   
4) To play burning rubber select "Insert Cartridge" from the files menu
   on the Plus version of A-CPC.

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

MakeBurnCart (registered version)
============

This utility will create a cartridge image from the files saved using
SAVEBURN.

MakeBurnCart <source_path> <destination_filename>

<source path> 
	= location of BURNROM.1, BURNROM.2, BURNROM.3 and BURNROM.4
	  files.

<destination_filename>
	= device, path and filename of cartridge image to create.
	
e.g.

MakeBurnCart df0: Work:emulators/A-CPC/burnin_rubber.cartridge
		
----------------------------------------------------------------------------

Using CPC disks (registered version)
===============

If you want to use 3" or 3.5" disks that have CPC software on them without
converting them into disk images then use this feature. Please note, that
the speed of loading depends on the complexity of any copyprotection (if
present) and the speed of your machine. On my vanilla A500 reading CPC
disks under AMSDOS is slighly faster than reading disk images, purely
due to the fact that I am only using 2 drives and the AmigaOS has to
search through the disk image file and back again in these circumstances.

It will allow you to use all your CPC software, so you can then decided
which games you want to convert to disk later to and store them on your
harddrive.

As with the disk images, if a special program or rom is required to read
a format on the CPC, this must be used in the emulator to read the format.

This feature will load some copyprotected software. Since much copyprotected
software relies on undocumented commands or features and/or specific error
codes from the Floppy Disk Controller, they may fail to load.

If you are using 40 track disks on a 80 track drive then enable "Double-step"
for the drive which needs it.

I been successful with the following disk formats:

- all standard AMSDOS (DATA,SYSTEM etc)
- all standard ROMDOS (D1,D10 etc - using a ROM image)
- some copyprotected disks including
	Get Dexter
	Jack Nicklaus' Golf
	Target Renegade didnt run, probably because the copyprotection
	was very complicated.
	
----------------------------------------------------------------------------

Snapshot file format
====================

This describes the format of the Snapshot files used by A-CPC (and also
CPCEMU and CPE).

offset from		Comment
start of file

00-07			"MV - SNA"

			Identify file as a snapshot.
			
08-0F			unused (0)

10			Snapshot version (1 or 2)

			A-CPC reads and writes snapshot version 1.

11			z80 register F
12			z80 register A
13			z80 register C
14			z80 register B
15			z80 register E
16			z80 register D
17			z80 register L
18			z80 register H
19			z80 register R
1a			z80 register I
1b			z80 interrupt flag iff0 (z80 maskable interrupt)

			iff0<>0 => Interrupts enabled,
			iff0=0 => Interrupts disabled

1c			z80 interrupt flag iff1 (z80 un-maskable interrupt)

1d			z80 register IX (low byte)
1e			z80 register IX (high byte)
1f			z80 register IY (low byte)
20			z80 register IY (high byte)
21			z80 register SP (low byte)
22			z80 register SP (high byte)
23			z80 register PC (low byte)
24			z80 register PC (high byte)
25			z80 interrupt mode (0,1,2)
26			z80 register F'
27			z80 register A'
28			z80 register C'
29			z80 register B'
2a			z80 register E'
2b			z80 register D'
2c			z80 register L'
2d			z80 register H'

2e			Gate array: current selected pen
2f-3f			Gate array: pens 0-15, border (hardware colour value)
40			Gate array: current mode selected and rom configuration
41			Gate array: current ram selection
42			CRTC: current selected register
43-54			CRTC: register data (0..17)
55			Expansion ROM selected
56			PPI: port A
57			PPI: port B
58			PPI: port C
59			PPI: control port
5a			PSG: current selected register
5b-6a			PSG: register data (0..15)
6b-6c			memory dump size (low byte then high byte)
			64 => 64k, 128 => 128k

(The following parameters only exist in version 2. In version 1, they
are unused:)

6d			CPC type where snapshot was generated
			0=cpc464, 1=cpc664, 2=cpc6128, 3>unknown			

6e			interrupt number (0..5), the latest interrupt
			during a screen update cycle.
			
6f-74			6 multimode bytes (thus screen modes 0..2 for
			the interrupts 0..5
			
75-ff			unused (0)

(the following is in all versions)

100..			memory dump (64k or 128k of data)

Disk Image file format
======================

Disc Information Block
======================

This is at the start of all disk image files.

offset in		Comment
file

00-21			"MV - CPCEMU Disk-File\r\n\Disk-Info\r\n"

			"MV - CPC" is used to identify the file as
			a disk image.
			
22-2f			unused (0)

30			number of tracks in disk image (40,80,42...)

31			number of sides (1 or 2)

32-33			size of track block including &100 byte track
			info block (stored low byte and then high byte)
			
			All track blocks MUST be the same size.

34-ff			unused (0)

After this header, there are each Track Information Block for each
track on the disk. The tracks are stored in order, and in double sided
formats, side 0 then side 1, for each track. Each track consists
of a Track information Block and the data for the sectors in the track.

Track Information Block
=======================

offset from		comment
start of 
track block			

00-0c			"Track-Info\r\n"

0d-0f			not used (0)

10			Track number (0 to number of tracks-1)

11			Side number (0 or 1)

12-13			not used (0)

14			BPS (bytes per sector)

			0=128 bytes
			1=256 bytes
			2=512 bytes
			3=1024 bytes
			
			This is used to calculate the position of the
			sector data in the track block.
			
15			SPT (sectors per track)

			Number of sectors in this track block.
			
16			GAP#3 (used for formatting, &4e)

17			Filler byte (used for formatting, &e5)

18-&ff			sector info list

Sector Info
===========

This is used to identify each sector on the disk)

offset			comment

0			track number (C value)
1			head number (H value)
2			sector id number (R value)
3			sector size (N)
4			FDC Status register 1 (after read operation)
5			FDC status register 2 (after read operation)
6			not used (0)
7			not used (0)



For more information consult the CPC Guide section of the
"Unofficial Amstrad CPC WWW Resource".

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

Other emulators
===============

During the development of this emulator I have discovered that other
CPC emulators exist:

PC:

CPCEMU v1.3b	by	Marco Vieth (ali@uni-paderborn.de)
			(It can be found on Simtel mirrors)
			
			micros.hensa.ac.uk/pub/

CPE v5.0	by 	Bernd Schmidt (crux@Pool.Informatik.Rwth-aachen.de)
			ftp.nvg.unit.no/pub/cpc/incoming/cpe50.zip
			ftp.nvg.unit.no/pub/cpc/incoming/cpe50src.zip

A CPC emulator by Herman Dullink, currently in beta. It doesnt use
the same kind of emulation as in CPCEMU and CPE and it does support
direct reading of CPC disks. But it is very fast even for 386.

SIMCPC emulates a CPC (not very well) in black and white. It is not
really meant as a serious emulation attempt, however it is a good laugh
to look at.

There is also one other called CPCEMUII but I dont know anything else
about it.

Amiga:

CPE		by	Bernd Schmidt (a very early version, Bernd doesnt
			plan to update this emulator. It comes with source)
			ftp.nvg.unit.no/pub/cpc/incoming/acpe_new.lzh

AMI-CPC		by	a french guy known in the scene as Hypnom.
			He doesnt have internet access. It runs on 68020
			or above only. I believe this uses the CPE Z80
			emulation, but it has more improvements and some
			bug fixes.

Unix:

(Unknown)	by	Mark Conmy (mpc@scs.leeds.ac.uk)
			The emulator supports snapshots and disk images
			to a useable degree. This has not been released
			yet.
Mac:

(unknown)	by	(unknown)
			Aparently a CPC emulator for Mac is being developed.
			I dont know any more than this. It is being
			written by a guy on compuserve.
			
Archimedes:

!CPC		by	Mark Rison (rison@hep.cam.ac.uk).

			A good emulator, at the moment it only supports
			Snapshots. He has had some difficulty with the
			disk emulation. Runs full speed on a low-end 
			Archimedes. This emulator sounds good but I
			havent seen it yet.

(unknown)	by	"Face Hugger"
			Aparently, a famous CPC demo coder has written
			a CPC emulator for the Archimedes. This may
			just be a rumour. I have not seen the emulator
			so I dont know about it's status.

If you are writing an emulator please contact me.
									
--------------------------------------------------------------------------

Connecting a 3" drive to the Amiga
==================================

WARNING! YOU COULD DO SERIOUS DAMAGE TO YOUR AMIGA OR 3" DRIVE WHEN 
ATTEMPTING THIS LEAD. I CANNOT BE HELD RESPOSIBLE FOR ANY DAMAGE TO YOURSELF,
COMPUTER OR DISC DRIVE FROM ATTEMPTING TO MAKE THIS LEAD. YOU DO THIS
AT YOUR OWN RISK!

Now, I will attempt to describe how to make a lead to connect a 3" drive
to your Amiga (as a 2nd or third drive). I have not personally tried this,
but it is a simple matter of making a simple lead, so it does not need
much electronical expertise, but you need to be good using a soldering
iron.


Amiga pin outs:

These are the pinouts on the Amiga connector.

1	/RDY
2	/DKRD
3-7	GND
8	/MTRXD
9	/SEL2B
10	/DRESB
11	/CHNG
12	+5v
13	/SIDEB
14	/WPRO
15	/TK0
16	/DKWE
17	/DKWD
18	/STEPB
19	DIRB
20	/SEL3B
21	/SEL1B
22	/INDEX
23	+12v

CPC Pin outs:

(these are the connections on the CPC6128 2nd drive connector)

1	/READY
2	GND
3	/SIDE SELECT
4	GND
5	/READ DATA
6	GND
7	/WRITE PROTECT
8	GND
9	/TRACK0
10	GND
11	/WRITE GATE
12	GND
13	/WRITE DATA
14	GND
15	/STEP
16	GND
17	/DIRECTION SELECT
18	GND
19	/MOTOR ON
20	GND
21	not connected
22	GND
23	/DRIVE SELECT 1
24	GND
25	not connected
26	GND
27	/INDEX
28	GND
29	not connected
30	GND
31	not connected
32	GND
33	not connected
34	GND

Connections:

	CPC/3" drive end	Amiga

1	/READY	------------	/RDY
3	/SIDE 1 SELECT -----	/SIDEB
5	/READ DATA ---------	/DKRD
7	/WRITE PROTECT -----	/WPRO
9	/TRACK0	------------	/TK0
11	/WRITE GATE --------	/DKWE
13	/WRITE DATA --------	/DKWD
15	/STEP --------------	/STEPB
17	/DIRECTION SELECT --	/DIRB
19	/MOTOR ON ----------	/MTRXD
23	/DRIVE SELECT 1 ----	/SEL1B
27	/INDEX -------------	/INDEX

On the 3" drive end, all even pins connect together and to GND, pins 3-7
on Amiga connect together, and then to the even pins on 3" drive.

Some 3" drives dont have all 34 pins. I believe that most of them just have
the data lines as described above. You should attempt this as long as you
know something about the 3" drive you are using.

you can also connect the +5v and +12v from the Amiga to the 3" drive as
long as you dont have any other drives connected, otherwise use a seperate
power supply.

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

Sources of CPC software and information
=======================================

Firmware Guide by Bob Taylor and Thomas Defoe.
	ftp.ibp.fr/pub/amstrad/misc/firmware.zip

	Now in electronic form.

WWW:
	Unofficial Amstrad CPC WWW Resource
	http://www.cs.cf.ac.uk/User/K.E.W.Thacker/Amstrad/index.html

	and soon a mirror at http://www.nvg.unit.no

	It contains Amstrad related links and especially the CPC Guide
	which contains documentation on the CPC chips and more documents
	essential for emulator authors.
	
Newsgroups:

There is an Amstrad 8-bit specific newsgroup for talking about emulators
and all things Amstrad related.

comp.sys.amstrad.8bit

FAQ (Frequently Asked Questions):

There is a official FAQ for the Amstrad newsgroup. It is posted twice
a week, and it can also be found at:

ftp.ibp.fr/pub/amstrad/amstrad.faq

It is maintained by Emmanuel Roussin

Anonymous FTP:

At the prompt enter "anonymous" or "ftp", and your e-mail address for
the password.

ftp.ibp.fr	/pub/amstrad

		The files are mirrored from "Genesis the 8bit generation BBS"
		run by Emmanuel Roussin. (roussin@blaise.ibp.fr).
		
		This site contains a huge selection of public domain and shareware
		software for the CPC and much much more.

		This site is very busy during the day.

		There is no incoming directory. You must contact
		Emmanuel to sort out how to get the files to him.

		I think that you can send uuencoded binarys to roussin@blaise.ibp.fr,
		please send another e-mail describing the uuencoded file contents.
		
		
ftp.nvg.unit.no	/pub/cpc/
		
		This site has lots and lots of games in disk image format.
		Check out /pub/cpc/incoming for the latest uploads.

		This site can be busy during the day.
		
		You can put uploads into the /pub/cpc/incoming directory.
		
sunshine.informatik.uni-wuerzburg.de /pub/joscho/cpcemu

		mirror of the ftp.nvg.unit.no site. Limited ftp access.
		
ftp.demon.co.uk	/pub/cpm

		Software for CPC C/PM. Limited set of files.
		
BBS:
	Aspects (2:250/107) +44 1617920260 (UK)
	
	Genesis the 8bit Generation (2:320/220) +33 1 39 50 54 11 (France)
	
	Razormaid (2:2471/6009) +49 711 4204329 (Germany)
	
	ZNODE 51 +49 89 961 45 75 (Germany)

==========================================================================

Please contact me if:
- you find a bug.

	Please supply this information:
	Amiga model, CPU, hardware connected, how the bug was generated.
	
- you find a game that does not work

	Some games will not work because they rely on undocumented
	features of the chips. But I might be able to improve the emulator
	if I can find bugs and fix them.

- you can provide technical information the "KC Kompact" computer made by 
  a German firm
- e-mail addressess of CPC demo coders
- e-mail addressess of game companies who made games for the CPC
- information about other CPC emulators
- connecting a 3" drive to the Amiga
- you have a different cartridge for stopping games, e.g. Hackit
  so I can emulate that.
  
  
All your comments are welcome. Especially ideas about increasing the
performance of the emulator.

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

About the Author and the Program
================================

I am a 20 year old male studying Computer Science at Cardiff University
in Wales in the United Kingdom. I am now in my 3rd year.

The whole of the emulator package was written on a vanilla A500 with
2 disk drives and 1mb of Chip Ram, running Workbench 2.0.

It has taken me about a year and a half to write so far and it is my first 
ever program using the Amiga Operating System, and it is actually my
2nd program I have written on the Amiga. (The first being an unfinished
Zool clone).

I am beginning to loose count of the number of times that a disk has
decided to become corrupted or the number of times the computer has
crashed, and I have had to reboot. Believe me that trying to develop
a program of this size on a A500 is a headache. The whole program
actually uses 3 disks. 1 disk for Devpac, 1 disk for Includes, 1 disk
for the source code and rom data. About another 30 disks hold snapshots
and disk images which I use to check the emulator is working correctly.
Thankfully, I am not used to a harddrive and the luxurys like large
amounts of memory after writing many programs on a CPC. (I wrote a Windows
system on the CPC and it took over half an hour to assemble!)

The source code takes about 15 mins to assemble. Not bad for about 700k
of source code.

The emulator should be 680x0 compatible. I have read through documentation
of other emulators and worked out what is needed for bare compatibility,
and when I can afford a new Amiga I will probably add 68020 enhancements
and more. Until then I will stick with the A500 and add as much as I can.
At least with the A500, when I change the code to speed things up, it is
noticeable.

I have only owned a A500 for two years now, previously I owned
a CPC6128. On the CPC I hacked lots of protections so I could transfer
tapes to disc, wrote a disk copier, a windows system, a windows-style
help system, picture converters, converted 100's of tunes from the Atari
ST, wrote some demos (many not complete), wrote a program to read PC
and Archimedes disks and with all this information I wrote the CPC Guide
which is available on the Unofficial Amstrad CPC WWW Resource. I can
still remember one Speedlock protection which had over 70 continuous
de-protection loops (all involving the dreaded R register!).

NEWS: I now own a A1200 and soon with a harddrive.

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

Credits and Contributions
=========================

Many thanks to everyone who has contributed to the emulator and the WWW pages.
They are (in no specific order), sorry if I have missed you out:
Bernd Schmidt, Marco Vieth, Jim Boulton, Emmanuel Roussin, Herman Dullink,
Christian Emre Lysel, John Stringer and all the others.

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

Contact:
	amstrad@aiind.upv.es

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

Acknowledgements
================

The ROMs included in this package (cpc464-os.rom, cpc464-basic.rom,
cpc664-os.rom, cpc664-basic.rom, cpc6128-os.rom, cpc6128-basic.rom,
cpc-amsdos.rom, plus-os.rom, plus-basic.rom and plus-amsdos.rom) are
(c) copyright Amstrad Plc and Locomotive Software. Permission has
been obtained to distribute them with the demo version and registered
version of this emulator. Many thanks to Cliff Lawson and Richard Clayton.

The Multiface 2 is (c) copyright Romantic Robot Ltd.

Burning Rubber cartridge is copyright (c) Ocean Software, and Amstrad plc.	

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