<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://oldwiki.cpcwiki.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DavidL</id>
		<title>CPCWiki - THE Amstrad CPC encyclopedia! - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://oldwiki.cpcwiki.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DavidL"/>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php/Special:Contributions/DavidL"/>
		<updated>2026-08-29T04:50:32Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=FAQ_-_Frequently_Asked_Questions&amp;diff=102593</id>
		<title>FAQ - Frequently Asked Questions</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=FAQ_-_Frequently_Asked_Questions&amp;diff=102593"/>
				<updated>2018-12-30T14:26:16Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: /* Amstrad CPC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
&lt;br /&gt;
comp.sys.amstrad.8bit Frequently Asked Questions v1.32 (10/16/2005)&lt;br /&gt;
The FAQ exists in english, french, german, spanish and dutch. The spanish and german translations arent up to date. They are archived on :&lt;br /&gt;
* http://www.genesis8bit.com&lt;br /&gt;
* english text only :&lt;br /&gt;
** http://www.faqs.org/faqs/amstrad8bit-faq&lt;br /&gt;
** ftp://rtfm.mit.edu/pub/usenet/comp.sys.amstrad.8bit&lt;br /&gt;
&lt;br /&gt;
The french translation was done by Pierre Guerrier and then by Pierre Thevenet. Thanks to them.&lt;br /&gt;
This FAQ is posted each month on the 4th to comp.sys.amstrad.8bit, comp.answers and news.answers&lt;br /&gt;
&lt;br /&gt;
* Lines preceded by '+' have been added since the last FAQ&lt;br /&gt;
* Lines preceded by '*' have been modified since the last FAQ&lt;br /&gt;
* Lines preceded by '-' will be removed in the next FAQ&lt;br /&gt;
&lt;br /&gt;
This FAQ is written by :&lt;br /&gt;
* Emmanuel Roussin, sections A, D, E&lt;br /&gt;
* Mark Ray, h089 mth.uea.ac.uk, section B (Notepad)&lt;br /&gt;
* Frank van Empel, http://www.fvempel.nl/, section C (PCW)&lt;br /&gt;
&lt;br /&gt;
All mailto links have been removed, all emails addresses were translated like this : a@b.com is now a b.com&lt;br /&gt;
&lt;br /&gt;
If you have any ideas for the FAQ, send an email to the correct person. About parts written by E.R., as english isn't my mother tongue, this FAQ has certainly typing mistakes, grammar errors, etc... I welcome the corrections.&lt;br /&gt;
  &lt;br /&gt;
This FAQ is freeware, you can use it freely for your personal use, but we retain the copyright. For commercial use, you must ask our permission before.&lt;br /&gt;
  &lt;br /&gt;
Parts of this FAQ are taken from the documentation of CPCEMU, some are from the main faq keeper (E.R.) and Mark Ray (Notepad part), other parts are taken from articles of the newsgroup.&lt;br /&gt;
&lt;br /&gt;
                      ---------------------------&lt;br /&gt;
&lt;br /&gt;
Introduction&lt;br /&gt;
&lt;br /&gt;
The vote for the creation of this newsgroup passed on 28th July 1994 with 148:36, it was effectively created on 4th august 1994. It was the idea of Marco Vieth and David Long. This unmoderated newsgroup comp.sys.amstrad.8bit is open to discussions about the Z80 Amstrad computers : CPC (464, 664, 6128, 464+, 6128+), GX4000, PCW (8256, 8512, 9256, 9512, 9512+, 10, 16), NC100/150/200 and PDA600.&lt;br /&gt;
&lt;br /&gt;
Appropriate topics include, but are not limited to :&lt;br /&gt;
&lt;br /&gt;
* CPC, GX4000, PCW, NC, PDA hardware and software,&lt;br /&gt;
* emulators,&lt;br /&gt;
* specific Amstrad CP/M files, overlays...&lt;br /&gt;
* ads for selling/buying the relative hardware and software.&lt;br /&gt;
  etc...&lt;br /&gt;
&lt;br /&gt;
The only topic that is excluded : discussion of Amstrad PC-compatible (1512, 1640, 2x86, 3x86 and others Amstrad compatible I don't know) because these computers are really compatible, so comp.sys.ibm.pc.* newsgroups must be used, especially comp.sys.ibm.pc.classic&lt;br /&gt;
&lt;br /&gt;
For questions about these PC see http://web.ukonline.co.uk/cliff.lawson and http://www.seasip.info/AmstradXT&lt;br /&gt;
&lt;br /&gt;
For easier reading and filtering, please use the following tags at the start of your subject line :&lt;br /&gt;
&lt;br /&gt;
* announce posts : [announce]&lt;br /&gt;
* unrelated topic : [i]&lt;br /&gt;
* for buying items : [want to buy]&lt;br /&gt;
* for selling items : [want so sell]&lt;br /&gt;
* for post in another language : [french], [german], etc..., but put a short summary in english to not ignore people who dont understand your language, also you will get much more help if more people can read your post.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Alan Michael Sugar TRADing ==&lt;br /&gt;
&lt;br /&gt;
Alan Michael Sugar created his company, and called it using his name :  Alan Michael Sugar TRADing, that's Amstrad. More on Amstrad company later.&lt;br /&gt;
&lt;br /&gt;
== Amstrad CPC ==&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC(+), KC compact and GX 4000 presentation 06/30/2003 ===&lt;br /&gt;
&lt;br /&gt;
They use the Zilog Z80A processor which speed is 4.00MHz. From SOFT968 &amp;quot;The system centres round the Z80A with a 4.00MHz clock&amp;quot;. Later it states that &amp;quot;Accesses to memory are synchronised with the video logic, constrained to occur on microsecond boundaries. This has the effect of stretching each Z80 machine cycle to be a multiple of 4 time states (clock cycles) In practice,this alters the instruction timing so that the effective clock rate is approximately 3.3MHz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Amstrad made the following CPC systems :&lt;br /&gt;
&lt;br /&gt;
* CPC 464 (Arnold 1),&lt;br /&gt;
* CPC 664 (Arnold 2),&lt;br /&gt;
* CPC 6128 (Arnold 3), there was also a CPC6128 cost down (Arnold 4 which was identical in operation to the original 6128 but had a new PCB and ASIC that reduced the board size and chip count to a mere fraction of the original size. If you open up a 6128 and the board fills the entire space you've got one of the originals. If you open one up and the board only occupies about 1/4 to 1/3 of the available space with a LOT of surrounding fresh air then you've got an Arnold 4.&lt;br /&gt;
* CPC 464+ (Arnold 5),&lt;br /&gt;
* CPC 6128+ (Arnold 6),&lt;br /&gt;
* GX 4000, the Amstrad 8 bit console.&lt;br /&gt;
&lt;br /&gt;
The CPC+ and GX 4000 have enhanced graphics and sound (DMA), colour palette of 4096, hardware sprites, hardware scrolling, and used 128 Ko to 512 Ko carts.&lt;br /&gt;
&lt;br /&gt;
Amstrad used CRTC (Cathodic Ray Tube Controller) from different manufacturers, which worked the same in the main, but do have many different characteristics. This is the reason why a demo designed for CRTC type 1, may not display correctly (or even at all), on a CRTC type 0 :&lt;br /&gt;
&lt;br /&gt;
* CRTC 0 : chipset HD6845S, HD6845SP, UM6845&lt;br /&gt;
* CRTC 1 : chipset UM6845R,&lt;br /&gt;
* CRTC 2 : chipset MC6845, MC6845S, MC6845P&lt;br /&gt;
* CRTC 3 : CPC+ ASIC AMS40489&lt;br /&gt;
* CRTC 4 : CPC+ pre-ASIC AMS40226&lt;br /&gt;
&lt;br /&gt;
The KC compact (KC mean KleinComputer = little computer) is a clone of the Amstrad CPC. It was made by VEB Mikroelectronik in East Germany (the old DDR) in 1989. It was made the year before the Berlin wall came down, and ceased production soon after. The KC compact is 95% compatible to the CPC. The functions of the Gate-Array are simulated by TTL-Logic and a Zilog Z8536 CIO. The ROMs are a patched English CPC6128 Operating system ROM (includes setup code for the Z8536) and a unpatched Locomotive BASIC v1.1 rom.&lt;br /&gt;
&lt;br /&gt;
The only incompatibility lies with the interrupt generation mechanism. Any program that relies on exact interrupt generation behaviour may fail to work.&lt;br /&gt;
&lt;br /&gt;
In some respects, the KC compact is actually more powerful than the CPC, because the interrupt frequency can be programmed, in theory the resolution could be reprogrammed, and the colour palette changed (replacing the colour rom). More details are available at http://andercheran.aiind.upv.es/~amstrad&lt;br /&gt;
&lt;br /&gt;
If you can read french and want to learn more about Amstrad CPC history, you should order the excellent book &amp;quot;Ces ordinateurs sont dangereux&amp;quot; by François Quentin (fquentin club-internet.fr) for 25 Euros (postage included, send an international postal order by going to your post office) to :&lt;br /&gt;
&lt;br /&gt;
  François Quentin&lt;br /&gt;
  9 Nonneville&lt;br /&gt;
  28140 Loigny la Bataille&lt;br /&gt;
  FRANCE&lt;br /&gt;
&lt;br /&gt;
== Emulators and utilities ==&lt;br /&gt;
&lt;br /&gt;
=== Emulators ===&lt;br /&gt;
&lt;br /&gt;
There is a commercial spectrum emulator for the CPC, reviewed in Amstrad Action.&lt;br /&gt;
&lt;br /&gt;
The best emulator for DOS is Caprice32. For win9x, the emulators are quite good : Arnold, Winape32 and MTMW. All win9x emulators emulates CPC+, NO$CPC is the only DOS emulator which emulates CPC+. On Amiga, Emu-CPC should be the best emulator.&lt;br /&gt;
&lt;br /&gt;
==== A1.1.1) CPCEMU (PC) 06/25/98 ====&lt;br /&gt;
&lt;br /&gt;
CPCEMU by Marco Vieth, last version is 1.5b1, get ftp://ftp.lip6.fr/pub/amstrad/emulator/cpcemu15.zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.2) Caprice32 (PC) and CPE (for PC and Amiga) and  04/28/2003&lt;br /&gt;
&lt;br /&gt;
  CPE, first written by Bernd Schmidt and then by Ulrich Doewich&lt;br /&gt;
  (report bugs, suggestions to caprice32 cybercube.com) since v5.1&lt;br /&gt;
&lt;br /&gt;
  Get ftp://ftp.lip6.fr/pub/amstrad/emulator/cpe52.zip, or if you have a&lt;br /&gt;
  386, get ftp://ftp.lip6.fr/pub/amstrad/emulator/cpe51.zip&lt;br /&gt;
  For sources : ftp://ftp.lip6.fr/pub/amstrad/emulator/cpesrc52.zip&lt;br /&gt;
&lt;br /&gt;
  CPE is now replaced by Caprice32, a 32bit emulator for dos (v1.11 or&lt;br /&gt;
  2b2) or win9x, get it at :&lt;br /&gt;
  http://www.caprice32.cybercube.com&lt;br /&gt;
&lt;br /&gt;
  Amiga CPE (68000, 1 Mo), last version is February 95, get&lt;br /&gt;
  ftp://ftp.lip6.fr/pub/amstrad/emulator/acpe_new.lzh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.3) A-CPC (PC) (06/01/97)&lt;br /&gt;
&lt;br /&gt;
  The Amstrad CPC emulator (v0.55beta) by Herman Dullink on PC, get&lt;br /&gt;
  ftp://ftp.lip6.fr/pub/amstrad/emulator/cpc055.zip&lt;br /&gt;
&lt;br /&gt;
  Current beta version is v0.56&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.4) PC-CPC (PC) 11/07/2004&lt;br /&gt;
&lt;br /&gt;
  A PC version of AMI-CPC by Ludovic Deplanque (see A1.1.7), go&lt;br /&gt;
  http://www.chez.com/deplanque/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.5) NO$CPC (PC) 02/04/2001&lt;br /&gt;
&lt;br /&gt;
  A german emulator by Martin Korth, go to http://www.work.de/nocash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.6) Richard Wilson's emulators 12/23/99&lt;br /&gt;
&lt;br /&gt;
  Richard Wilson (author of ParaDOS) wrote no less than 3 emulators, get&lt;br /&gt;
  them at http://winape.emuunlim.com :&lt;br /&gt;
&lt;br /&gt;
  - RWCPC for msdos : ftp://ftp.lip6.fr/pub/amstrad/emulator/rwcpc.zip&lt;br /&gt;
  - CPC emulator for windows 3.1, with debugger and assembler :&lt;br /&gt;
    ftp://ftp.lip6.fr/pub/amstrad/emulator/cpcwin10.zip&lt;br /&gt;
  - WinApe 32, the CPC(+) emulator for win9x, comes with a built-in&lt;br /&gt;
    compatible Maxam assembler&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.7) AMI-CPC (Amiga) 07/11/2004&lt;br /&gt;
&lt;br /&gt;
  A french CPC emulator for Amiga, by Ludovic Deplanque, sources included.&lt;br /&gt;
  http://www.chez.com/deplanque&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.8) A-CPC (Amiga)&lt;br /&gt;
&lt;br /&gt;
  A CPC emulator for Amiga by Kevin Thacker. Get&lt;br /&gt;
  ftp://ftp.lip6.fr/pub/amstrad/emulator/acpcde20.lha&lt;br /&gt;
  It's an evaluation version of the real shareware. Don't forget the web&lt;br /&gt;
  page of Kevin (see A2.2).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.9) Emu-CPC (Amiga) 04/15/99&lt;br /&gt;
&lt;br /&gt;
  Another french CPC emulator on AMIGA by Stephane Tavenard, get EmuCPC&lt;br /&gt;
  v0.7 at ftp://ftp.lip6.fr/pub/amstrad/emulator/emucpc07.lzx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.10) !CPC (Acorn) 07/18/99&lt;br /&gt;
&lt;br /&gt;
  !CPC is a CPC emulator for Acorn RISC OS machines (Archimedes/RISC PC)&lt;br /&gt;
  by Mark RISON. Get ftp://ftp.lip6.fr/pub/amstrad/emulator/cpc0728.zip&lt;br /&gt;
&lt;br /&gt;
  Get the sources on Lip6 : ftp://ftp.lip6.fr/pub/amstrad/emulator/cpcs0728.zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.11) !CPCemu (Acorn)&lt;br /&gt;
&lt;br /&gt;
  This emulator for Acorn RISC OS machines is written by Andreas&lt;br /&gt;
  Stroiczek, aka Face Hugger. Get v1.10 at&lt;br /&gt;
  ftp://ftp.lip6.fr/pub/amstrad/emulator/cpcem110.zip&lt;br /&gt;
  or on ftp://ftp.uni-kl.de/pub/acorn/long/emulator&lt;br /&gt;
  ftp://ftp.uni-stuttgart.de/pub/systems/acorn/riscos/emulator&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.12) CPC++ (Unix and MAC) 03/02/2002&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  This emulator for SunOS, Linux and MAC is written by Brice Rive.&lt;br /&gt;
  Go at  http://bricerive.free.fr/cpc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.13) SIMCPC (PC)&lt;br /&gt;
&lt;br /&gt;
  Presumably the first CPC emulator written, for PC XT/AT by GHE,&lt;br /&gt;
  Aachen. It is only black and white, with additional ROMs.&lt;br /&gt;
  Get ftp://ftp.lip6.fr/pub/amstrad/emulator/simcpc.zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.14) Multi-Machine, or MTM (win9x) 01/11/2000&lt;br /&gt;
&lt;br /&gt;
  Get MTM v1.30b by Paul Hodgson at ftp://ftp.lip6.fr/pub/amstrad/emulator/mtmw130b.zip&lt;br /&gt;
&lt;br /&gt;
  MTM is a win9x multi-machine emulator. It emulates Amstrad CPC(+),&lt;br /&gt;
  Sinclair ZX80/81 and Spectrum,  Jupiter Ace and Elan Enterprise.&lt;br /&gt;
  It can read .WAV or .CDT (digitalized Amstrad tapes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.15) Arnold (win9x, MACos, Unix/Linux), Arnold Jr (Java) 11/08/2004&lt;br /&gt;
&lt;br /&gt;
  A CPC(+) emulator by Kevin Thacker for win9x, get binaries and&lt;br /&gt;
  sources at http://arnold.emuunlim.com&lt;br /&gt;
&lt;br /&gt;
  Get the MACos conversion by Richard Bannister at http://www.bannister.org/software/emu.htm&lt;br /&gt;
&lt;br /&gt;
  Andreas Micklei is working on the Linux version, get patches at&lt;br /&gt;
  http://arnold.berlios.de/&lt;br /&gt;
&lt;br /&gt;
  Arnold Junior is a different emulator, the emulation is very simple.&lt;br /&gt;
  It uses the z80 emulation from Jasper (Spectrum emulator at &lt;br /&gt;
  http://www.spectrum.lovely.net&lt;br /&gt;
  The source to Arnold Jnr is available from&lt;br /&gt;
  http://www.arnoldemu.freeserve.co.uk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.16) Zsim (PC) 05/06/2003&lt;br /&gt;
&lt;br /&gt;
  Zsim v2.42 by Jurgen G. Weber, it simulates a CP/M Z80 machine. It&lt;br /&gt;
  DOES NOT simulate CP/M. It includes a PD CP/M  compatible operating&lt;br /&gt;
  system and a program to format CP/M disks, so you can run CP/M&lt;br /&gt;
  programs. It can read DATA and SYSTEM disks directly.&lt;br /&gt;
  http://www.jwi.de/zsim&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.17) Yage (PC) 07/15/99&lt;br /&gt;
&lt;br /&gt;
  Yage v0.91 by Antoine Pitrou, a CPC emulator which handles demos like&lt;br /&gt;
  'The demo' and 'divine megademo'. Get&lt;br /&gt;
  ftp://ftp.lip6.fr/pub/amstrad/emulator/yage091.zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.18) CPCE (msdos/win9x) 05/06/2003&lt;br /&gt;
&lt;br /&gt;
  A spanish Amstrad CPC emulator for msdos/win9x by CNGSOFT, go&lt;br /&gt;
  http://cpce.emuunlim.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.19) CPC-emulator (Linux/Unix) 02/05/2001&lt;br /&gt;
&lt;br /&gt;
  CPC-emulator for Linux/Unix with X11 version 023 by Ulrich Cordes,&lt;br /&gt;
  features .DSK (with large formats : 720 Ko), sound, debugger.&lt;br /&gt;
  go http://www.amstrad-cpc.de&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.20) M.E.S.S. (PC, MAC, Amiga) 10/23/2001&lt;br /&gt;
&lt;br /&gt;
  Multi-Emulator Super System (Amstrad CPC, PCW, and NC) is available&lt;br /&gt;
  on : http://www.mess.org&lt;br /&gt;
&lt;br /&gt;
  For using PcW16 emulation, get ftp://ftp.lip6.fr/pub/amstrad/misc/pcwos.zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.21) Arnimedes (PC) 05/06/2003&lt;br /&gt;
&lt;br /&gt;
  Arnimedes for msdos and win9x, by Oliver Lenz, get it at http://www.arnimedes.de&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.22) XCPC (Unix/X11R6) 10/24/2001&lt;br /&gt;
&lt;br /&gt;
  An Amstrad CPC emulator by Olivier Poncet for unix and X11R6 at :&lt;br /&gt;
  http://xcpc.emuunlim.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.1.23 CoPaCabana (win9x) 05/06/2003&lt;br /&gt;
&lt;br /&gt;
  A french windows Amstrad CPC emulator at :&lt;br /&gt;
  http://copacabana.emuunlim.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.2) Utilities&lt;br /&gt;
&lt;br /&gt;
  A1.2.1) SNA2GIF (PC)&lt;br /&gt;
&lt;br /&gt;
  SNA2GIF v1.1 by Marco Vieth is included in CPCEMU, it extracts&lt;br /&gt;
  screens from snapshots to GIF format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.2.2) SNAP GRAB (PC)&lt;br /&gt;
&lt;br /&gt;
  SNAP GRAB v1.1 is a freeware by Georg Schwarz to extract screens from&lt;br /&gt;
  snapshots to Multiface II format, which can be seen on real CPC even&lt;br /&gt;
  with a multiface. If you want to see the picture on your PC, you will&lt;br /&gt;
  need CPC2x (see A1.2.3), get SNAPGR11.ZIP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.2.3) CPC2x (was CPC to TIFF) (PC)&lt;br /&gt;
&lt;br /&gt;
  CPC2x v2.0 by Michael Stroucken converts Amstrad CPC screens to the&lt;br /&gt;
  graphic TIF and GIF format. Get CPC2X.ZIP with sources and&lt;br /&gt;
  binaries for MSDOS and CP/M.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.2.4) CPC file system (PC) 06/08/2004&lt;br /&gt;
&lt;br /&gt;
  CPCfs v0.85.3 by Derik van Zutphen, it transfers CPC files between .DSK&lt;br /&gt;
  files and DOS files, in the two ways. There is a useful batch mode.&lt;br /&gt;
  http://www.426.ch/cpcfs/&lt;br /&gt;
&lt;br /&gt;
  Better get CPCXFS, the updated version by Kevin Thacker which&lt;br /&gt;
  supports now extended .DSK, bugs removed, other updates, at :&lt;br /&gt;
  http://andercheran.aiind.upv.es/~amstrad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.2.5) Multiface II to Snapshot (PC)&lt;br /&gt;
&lt;br /&gt;
  M2TOSNA v1.1 by James McKay converts CPC Multiface II files to 64&lt;br /&gt;
  Ko and 128 Ko snapshots files. Look for M2TOSNA1.ZIP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   A1.2.6) CPDread and CPDwrite (PC) 06/03/99&lt;br /&gt;
&lt;br /&gt;
  Copy Protected Disk reader v3.24 by Ulrich Doewich, for transferring&lt;br /&gt;
  CPC disks into the common DSK file format of CPC emulators. It uses&lt;br /&gt;
  the extended DSK format which manages copy protected disks better.&lt;br /&gt;
  Get CPDR324.ZIP&lt;br /&gt;
&lt;br /&gt;
  CPDwrite v1.03, for writing back .DSK to a disk, even with protected&lt;br /&gt;
  games, get CPDW103.ZIP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.2.7) MACTerm (MAC)&lt;br /&gt;
&lt;br /&gt;
  Transfer files between CPC and MAC with a parallel cable, get CPCTERM.ZIP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.2.8) 22disk (PC) 08/06/2000&lt;br /&gt;
&lt;br /&gt;
  22disk is a shareware utility by Sydex (http://www.sydex.com) which&lt;br /&gt;
  can read/write/format CP/M disks on PC. It can read CPC disks formats&lt;br /&gt;
  with a file called CPMDISKS.DEF which comes with CPCEMU, or EURO.DEF&lt;br /&gt;
  (ftp://ftp.lip6.fr/pub/amstrad/emu-uti/eurodef.zip) or my&lt;br /&gt;
  own file (ftp://ftp.lip6.fr/pub/amstrad/emu-uti/gen8-def.zip).&lt;br /&gt;
  You shouldn't use it under OS/2 or win95, unless you have the last&lt;br /&gt;
  version (ftp://ftp.lip6.fr/pub/amstrad/emu-uti/22dsk144.zip).&lt;br /&gt;
&lt;br /&gt;
  Sydex has removed 22disk since 2000 from public distribution, but is&lt;br /&gt;
  still for sale on their web site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.2.9) DIC (PC) 06/14/97&lt;br /&gt;
&lt;br /&gt;
  Disc Image Copier by Tim Rieman, transfer DATA and SYSTEM disc from&lt;br /&gt;
  CPC to PC with a parallel cable, get :&lt;br /&gt;
  ftp://ftp.lip6.fr/pub/amstrad/emu-uti/dic130.zip&lt;br /&gt;
&lt;br /&gt;
  For conversion from PC to CPC, see A1.2.11&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.2.10) AIFF decoder (Unix, PC, Amiga) 02/28/2000&lt;br /&gt;
&lt;br /&gt;
  AIFF decoder by Pierre Guerrier, a tool for retrieving data from&lt;br /&gt;
  sampled Amstrad CPC tapes, C sources included. Get programs from :&lt;br /&gt;
&lt;br /&gt;
  - MSDOS port v1.2 by Ulrich Doewich :&lt;br /&gt;
    ftp://ftp.lip6.fr/pub/amstrad/emu-uti/pcdcdr12.zip&lt;br /&gt;
  - Amiga port by Kevin Thacker :&lt;br /&gt;
    ftp://ftp.lip6.fr/pub/amstrad/emu-uti/amiaiff.lzh&lt;br /&gt;
&lt;br /&gt;
  A1.2.11) PC2CPC (PC)&lt;br /&gt;
&lt;br /&gt;
  PC2CPC v2.0 by James Churchill converts CPC emulator EDSK images to 3&amp;quot;&lt;br /&gt;
  disks via the CPCEMU parallel link, look for&lt;br /&gt;
  ftp://ftp.lip6.fr/pub/amstrad/emu-uti/pc2cpc.zip&lt;br /&gt;
&lt;br /&gt;
  For conversion from CPC 3&amp;quot; disk to PC .DSK see A1.2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.2.12) DSK-CPC (CPC) 09/01/99&lt;br /&gt;
&lt;br /&gt;
  DSK-CPC by Divine Coding reads a .DSK or .EDSK image from a 3.5&amp;quot; &lt;br /&gt;
  720Kb DOS disc in drive B and writes the image to a CPC disc, thus&lt;br /&gt;
	recreating the original software disc. It can can cope with copy-&lt;br /&gt;
	protected software. Get it at : &lt;br /&gt;
  ftp://ftp.lip6.fr/pub/amstrad/disk/DSK-CPC.ZIP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.2.13) CPCKEY (PC) 06/08/2001&lt;br /&gt;
&lt;br /&gt;
  CpcKey v0.3 for msdos use the CPCEMU parallel link for :&lt;br /&gt;
&lt;br /&gt;
  - command/replace CPC keyboard with the PC keyboard,&lt;br /&gt;
  - send files between CPC and PC&lt;br /&gt;
  - modify the CPC memory, poke during games&lt;br /&gt;
  - automatic procedures, etc...&lt;br /&gt;
  - compatible Intel HEX format&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.2.14) SEND2 (CPC) 06/15/97&lt;br /&gt;
&lt;br /&gt;
  SEND2 v1.2 by J.GUEZENNEC (jguezenn icor.fr) is a complete parallel&lt;br /&gt;
  transfer package which is an amelioration of CPCPARA.BAS :&lt;br /&gt;
&lt;br /&gt;
  - 3&amp;quot; disk transfer (DATA, SYSTEM, IBM),&lt;br /&gt;
  - ROM transfers,&lt;br /&gt;
  - tape transfers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.2.15) TransCPC&lt;br /&gt;
&lt;br /&gt;
  CPC transfile project, a project aimed at simulating a small file&lt;br /&gt;
  system on the Amstrad CPC with the files being stored on a PC hard&lt;br /&gt;
  disk. The project is complete, there is no plan to improve it. Get&lt;br /&gt;
  ftp://ftp.lip6.fr/pub/amstrad/emulator/transcpc.zip&lt;br /&gt;
  The CPC asm code needs Devpac or similar to be compiled, and any PC&lt;br /&gt;
  assembler for the PC asm code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.2.16) ReadScr (PC)&lt;br /&gt;
&lt;br /&gt;
  A PC utility for ms-dos by Ark for viewing Amstrad CPC screens, with&lt;br /&gt;
  palettes or not, get ftp://ftp.lip6.fr/pub/amstrad/graphic/readscr.zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.2.17 CPC2TAPE (PC) 08/16/99&lt;br /&gt;
&lt;br /&gt;
  A dos utility (comes with C sources) to transfer Amstrad files from&lt;br /&gt;
  a PC to the CPC directly via the sound card, or to tapes, get&lt;br /&gt;
  ftp://ftp.lip6.fr/pub/amstrad/emu-uti/cpc2tape.zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A1.2.18) SLIP/IP stack 04/24/99&lt;br /&gt;
&lt;br /&gt;
  A SLIP/IP stack developped by Mark Rison for Amstrad&lt;br /&gt;
  CPC6128s with Amstrad serial interfaces. Using this, you can&lt;br /&gt;
  establish a SLIP connection from your Amstrad and then ping it. To&lt;br /&gt;
* find out more, go to http://www.nenie.org/cpcip/&lt;br /&gt;
&lt;br /&gt;
  It's probably easiest if you connect your CPC to a Linux box,&lt;br /&gt;
  using a null modem, and the instructions assume this, but there's&lt;br /&gt;
  no reason in principle why you couldn't connect via a modem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A2) Sources of emulators, ROMs and programs&lt;br /&gt;
&lt;br /&gt;
  ROMs are now included with CPCEMU and CPE, with the permission of&lt;br /&gt;
  Amstrad and Locomotive Software.&lt;br /&gt;
&lt;br /&gt;
  If you have ROMs on a romboard, you can get them for use with an&lt;br /&gt;
  emulator, get CPCEMU, it comes with a basic program to transfer a ROM&lt;br /&gt;
  to a file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A2.0) IRC 07/24/2004&lt;br /&gt;
&lt;br /&gt;
  You can exchange files with Internet Relay Chat, but its primary goal&lt;br /&gt;
  is to chat with other internet users.&lt;br /&gt;
&lt;br /&gt;
  - #CPC, every days on IRCNet&lt;br /&gt;
  - #CPC, on irc.emm.fr&lt;br /&gt;
  - #CPC on irc.neoxys.org port 6667&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A2.1) FTP sites 07/31/2004&lt;br /&gt;
&lt;br /&gt;
  If you have problems accessing FTP sites, use the following method :&lt;br /&gt;
&lt;br /&gt;
  ftp://anonymous@ftp.lip6.fr/pub/amstrad/emulator/cpcemu15.zip&lt;br /&gt;
&lt;br /&gt;
  - ftp://ftp.lip6.fr/pub/amstrad, thanks to Remy Card,&lt;br /&gt;
    http://genesis8.free.fr/files.php (HTML front-end with&lt;br /&gt;
    the list of all files, size and description included).&lt;br /&gt;
&lt;br /&gt;
    all questions about this site should be directed to roussin noos.fr&lt;br /&gt;
&lt;br /&gt;
  - ftp://andercheran.aiind.upv.es/pub/cpc/ADATE, thanks to Sergio Bayarri&lt;br /&gt;
  or creating the site, and to Kevin Thacker for maintaining it. Send&lt;br /&gt;
  what you have in /pub/cpc/ADATE/incoming. This site contains tape&lt;br /&gt;
  images (.cdt) and disk images (.dsk). The aim of this site is to&lt;br /&gt;
  preserve games, so only original games are allowed. No hacked or&lt;br /&gt;
  modified games will be allowed. Please see the documentation at this&lt;br /&gt;
  site about creating tape-images using existing tools. (voc2tzx)&lt;br /&gt;
&lt;br /&gt;
  - ftp://ftp.nvg.ntnu.no/pub/cpc, thanks to Arnt Gulbrandsen for&lt;br /&gt;
    creating the site, and to Nicholas Campbell for maintaining it.&lt;br /&gt;
    Send what you have in /pub/cpc/incoming or email to nich otto.org,&lt;br /&gt;
    look  for the HTML front-end : http://tacgr.emuunlim.com&lt;br /&gt;
&lt;br /&gt;
  - ftp://ftp.math.uni-hamburg.de/pub/misc/cpc_emu&lt;br /&gt;
    mirror of ftp.nvg.ntnu.no&lt;br /&gt;
&lt;br /&gt;
  - ftp://ftp.demon.co.uk/pub/cpm, thanks to Paul Martin, specific&lt;br /&gt;
    Amstrad CP/M related files.&lt;br /&gt;
&lt;br /&gt;
  - http://www.cantrell.org.uk/mirrors, mirror of lip6 and nvg&lt;br /&gt;
&lt;br /&gt;
  - Two Mag FTP site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A2.2) WWW 07/24/2004&lt;br /&gt;
&lt;br /&gt;
  You will find them at :&lt;br /&gt;
&lt;br /&gt;
  - http://genesis8.free.fr&lt;br /&gt;
    the FAQ maintainer homepage with Amstrad news and more !&lt;br /&gt;
&lt;br /&gt;
  Three other important web sites :&lt;br /&gt;
&lt;br /&gt;
  - http://www.amstrad.com&lt;br /&gt;
    the official Amstrad web site&lt;br /&gt;
&lt;br /&gt;
  - http://andercheran.aiind.upv.es/~amstrad&lt;br /&gt;
    the biggest Amstrad web page by Kevin Thacker&lt;br /&gt;
		&lt;br /&gt;
  - http://web.ukonline.co.uk/cliff.lawson/&lt;br /&gt;
    Cliff Lawson's site about all Amstrad computers range, even the PC ones    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A2.3) BBS 07/31/2004&lt;br /&gt;
&lt;br /&gt;
  Informations removed indefinitely.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A2.4) Using programs with emulators or real CPC&lt;br /&gt;
&lt;br /&gt;
  A2.4.1) DSK files&lt;br /&gt;
&lt;br /&gt;
  These files are images of a disk, you &amp;quot;insert&amp;quot; a disk with F3 in&lt;br /&gt;
  CPCEMU, and F6 with CPE, then you can type CAT to see the files,&lt;br /&gt;
  RUN&amp;quot;file_name&amp;quot; to run a program (.BAS or .BIN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A2.4.2) CPC files 11/07/2004&lt;br /&gt;
&lt;br /&gt;
  Three solutions to use plain CPC files :&lt;br /&gt;
&lt;br /&gt;
  a) put them in the TAPE directory, type |TAPE then the usual RUN&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  b) WinAPE comes with a ROM image called CPCDOS. Simply select the ROM&lt;br /&gt;
  (probably best below AMSDOS in ROM 6), then you can use |DOS,&lt;br /&gt;
  |DOS.IN, |DOS.OUT, |CD&lt;br /&gt;
  &lt;br /&gt;
  c) inject them in a .DSK file with CPCFS (see A1.2.4) :&lt;br /&gt;
&lt;br /&gt;
  - create an empty .DSK : CPCFS -nd empty.dsk (you can omit the .dsk)&lt;br /&gt;
  - inject files : CPCFS empty -mp *.* (the files must be in the&lt;br /&gt;
    current directory, the DSK can be somewhere else)&lt;br /&gt;
&lt;br /&gt;
  To extract files from a .DSK : CPCFS image.dsk -mg *.*&lt;br /&gt;
&lt;br /&gt;
  XTI by Pierre Guerrier can also put amsdos files into a DSK.&lt;br /&gt;
  Note that there are MAC and Amiga ports of XTI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A2.4.3) How to run programs with a CPC or emulator ?&lt;br /&gt;
&lt;br /&gt;
  Type CAT to get the directory of the disk, mostly programs are run&lt;br /&gt;
  with a BASIC loader, so looks for *.BAS, then type RUN&amp;quot;name.BAS&amp;quot; (.BAS&lt;br /&gt;
  can be omitted). If there isn't a basic loader, run the .BINary&lt;br /&gt;
  program directly :  type RUN&amp;quot;name.BIN&amp;quot; (.BIN can be omitted).&lt;br /&gt;
&lt;br /&gt;
  Some disks doesn't have a real directory, and must be launched with&lt;br /&gt;
  the CP/M command : |CPM.&lt;br /&gt;
&lt;br /&gt;
  For running tapes on a real CPC, type RUN&amp;quot;, the CPC will launch the&lt;br /&gt;
  first program on the tape.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A2.4.4) How to format a disk 01/03/2003&lt;br /&gt;
&lt;br /&gt;
  On a CPC, use the formatting utility on your CP/M disk (diskit) or&lt;br /&gt;
  the following basic program :&lt;br /&gt;
&lt;br /&gt;
  5 ' QuickFormat by Adrian Forbes&lt;br /&gt;
  10 MODE 1:PRINT&amp;quot;Please Wait...&amp;quot;&lt;br /&gt;
  20 GOSUB 150&lt;br /&gt;
  30 MODE 1&lt;br /&gt;
  40 INPUT &amp;quot;(D)ata or (V)endor&amp;quot;;f$&lt;br /&gt;
  50 PRINT &amp;quot;Sure (Y/N)&amp;quot;&lt;br /&gt;
  60 a$=INKEY$:IF a$=&amp;quot;&amp;quot; THEN 60&lt;br /&gt;
  70 IF LOWER$(a$)&amp;lt;&amp;gt;&amp;quot;y&amp;quot; THEN GOTO 60&lt;br /&gt;
  80 MODE 1&lt;br /&gt;
  90 PRINT&amp;quot;Insert disc to format in drive A&amp;quot;:PRINT&amp;quot;Then press a key...&amp;quot;&lt;br /&gt;
  100 CALL &amp;amp;BB18&lt;br /&gt;
  110 MODE 1&lt;br /&gt;
  120 PRINT&amp;quot;Formatting...&amp;quot;&lt;br /&gt;
  130 |QF,f$&lt;br /&gt;
  140 GOTO 30&lt;br /&gt;
  150 ch=0&lt;br /&gt;
  160 add=&amp;amp;4000&lt;br /&gt;
  170 ln=310&lt;br /&gt;
  180 FOR x=1 TO 8&lt;br /&gt;
  190 READ a$:a=VAL(&amp;quot;&amp;amp;&amp;quot;+a$)&lt;br /&gt;
  200 POKE add,a&lt;br /&gt;
  210 add=add+1&lt;br /&gt;
  220 ch=ch+a&lt;br /&gt;
  230 NEXT&lt;br /&gt;
  240 READ ch$&lt;br /&gt;
  250 IF ch 'put 'not equal to' here, cant do it in HTML' VAL(&amp;quot;&amp;amp;&amp;quot;+ch$) THEN PRINT&amp;quot;Error in line&amp;quot;;ln:END&lt;br /&gt;
  260 ln=ln+10&lt;br /&gt;
  270 ch=0&lt;br /&gt;
  280 IF ln 'put &amp;quot;not equal to' here, cant do it in HTML' 510 THEN GOTO 180&lt;br /&gt;
  290 CALL &amp;amp;4000&lt;br /&gt;
  300 RETURN&lt;br /&gt;
  310 DATA 21,8D,40,01,91,40,C3,D1,354&lt;br /&gt;
  320 DATA BC,FE,01,C0,21,9A,40,06,37C&lt;br /&gt;
  330 DATA 09,36,00,23,36,00,23,36,F1&lt;br /&gt;
  340 DATA 00,23,36,02,23,10,F2,21,1A1&lt;br /&gt;
  350 DATA 88,40,CD,D4,BC,22,89,40,410&lt;br /&gt;
  360 DATA DD,6E,00,DD,66,01,23,5E,310&lt;br /&gt;
  370 DATA 23,56,1A,FE,44,CA,80,40,35F&lt;br /&gt;
  380 DATA FE,64,CA,80,40,3E,41,32,39D&lt;br /&gt;
  390 DATA 8C,40,11,00,00,06,28,C5,1D0&lt;br /&gt;
  400 DATA 21,9A,40,7A,06,09,77,23,21E&lt;br /&gt;
  410 DATA 23,23,23,10,F9,3A,8C,40,278&lt;br /&gt;
  420 DATA 06,05,21,9C,40,CD,73,40,288&lt;br /&gt;
  430 DATA 06,04,21,A0,40,CD,73,40,28B&lt;br /&gt;
  440 DATA 21,9A,40,DF,89,40,14,C1,378&lt;br /&gt;
  450 DATA 10,D5,C9,77,23,23,23,23,2B1&lt;br /&gt;
  460 DATA 23,23,23,23,3C,10,F4,C9,295&lt;br /&gt;
  470 DATA 3E,C1,32,8C,40,C3,3F,40,33F&lt;br /&gt;
  480 DATA 86,00,00,07,00,00,00,00,8D&lt;br /&gt;
  490 DATA 00,97,40,C3,09,40,C9,51,2FD&lt;br /&gt;
  500 DATA C6,00,20,00,00,00,00,00,E6&lt;br /&gt;
  510 DATA end&lt;br /&gt;
&lt;br /&gt;
  On a PC, use 22disk, look for A128&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A2.5) Buying hardware/software&lt;br /&gt;
&lt;br /&gt;
 A2.5.1) Auctions sites&lt;br /&gt;
&lt;br /&gt;
  Auctions sites like http://www.ebay.com are good places to find&lt;br /&gt;
  hardware and software&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A2.5.2) Emmaüs (only in France)&lt;br /&gt;
&lt;br /&gt;
  It's possible to find interesting things in Emmaüs shops, like at&lt;br /&gt;
  Trappes http://www.emmaus-trappes.com/informatique &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A2.5.3) Tradinpost&lt;br /&gt;
&lt;br /&gt;
  - You can buy a selection of games cartridges for the CPC+ and the&lt;br /&gt;
    GX4000, cartridges are unboxed and without instructions. Price £7.99&lt;br /&gt;
    each including postage and packing in United Kingdom, also programs&lt;br /&gt;
    for CPC/PCW, go at http://www.tradeinpost.com&lt;br /&gt;
&lt;br /&gt;
    John Thackeray (email : Tradingpost btinternet.com)&lt;br /&gt;
    Trade in Post&lt;br /&gt;
    Victoria Road&lt;br /&gt;
    Shifnal&lt;br /&gt;
    Shropshire TF11 8AF&lt;br /&gt;
    Tel/Fax : 00 44 (0)1952 462135&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A3) Transfer between CPC and PC&lt;br /&gt;
&lt;br /&gt;
  Later mentions of DDI-1 can also be replaced by FD-1 (which comes&lt;br /&gt;
  without the interface for the 464)&lt;br /&gt;
&lt;br /&gt;
  A3.1.1) 3&amp;quot; drive on PC (part one) 10/22/2002&lt;br /&gt;
&lt;br /&gt;
* A working solution on http://www.fvempel.nl/3pc.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A3.1.2) 3&amp;quot; drive on PC (part two) 01/11/2000&lt;br /&gt;
&lt;br /&gt;
  Porting files across from CPC to PC is easy, at least, if you have&lt;br /&gt;
  a DDI-1 disk drive !  You need to follow exactly these instructions.&lt;br /&gt;
  As is usual with things like this, you do everything entirely at your&lt;br /&gt;
  own risk. I have done this on my own PC without damaging it, but&lt;br /&gt;
  cannot guarantee that it will work with yours. If you do damage your&lt;br /&gt;
  computer, it is YOUR FAULT.&lt;br /&gt;
&lt;br /&gt;
  Note of the FAQ keeper, I have a report of someone trying out the&lt;br /&gt;
  following instructions, who had his controller burnt, and another&lt;br /&gt;
  whose 3&amp;quot; drive died, so beware.&lt;br /&gt;
&lt;br /&gt;
  These instructions only apply to the DDI-1 package. They MAY work with&lt;br /&gt;
  the FD1 3&amp;quot; second drive, and will definitely NOT work with the&lt;br /&gt;
  internal drives on 6128s, 664s, and 6128+s.&lt;br /&gt;
&lt;br /&gt;
  Install 22DISK! You will need to tell it you have no A: drive, and&lt;br /&gt;
  that B: is a 360K drive, physical unit 0, on the Primary adapter, with&lt;br /&gt;
  step-rate of 12 milli-seconds. You will also need the CPMDISKS.DEF&lt;br /&gt;
  file from CPCEMU.&lt;br /&gt;
&lt;br /&gt;
  0 Install 22DISK with CPMDISKS.DEF coming with CPCEMU or the one from&lt;br /&gt;
  EURODEF.ZIP&lt;br /&gt;
&lt;br /&gt;
  1 open your PC, following all usual precautions such as turning off&lt;br /&gt;
  the power and discharging any static electricity on your body!&lt;br /&gt;
&lt;br /&gt;
  2 Unplug any floppy drives. This step is important. (See note 1)&lt;br /&gt;
&lt;br /&gt;
  3 Find the connector that is meant for the B: drive. (It is probably&lt;br /&gt;
  on the same cable as the connector for the A: drive. The A: connector&lt;br /&gt;
  has a twist in it. The B: connector is the other one!)&lt;br /&gt;
&lt;br /&gt;
  4 Plug it into your DDI-1 drive unit. You may have to file the keyway&lt;br /&gt;
  on the connector off. (Different  PCs have different keyways on their&lt;br /&gt;
  connectors, so you may not have to attack it with a file. So much for&lt;br /&gt;
  standardisation!)&lt;br /&gt;
&lt;br /&gt;
  5 Turn the DDI-1 drive on first, then the PC. When it does the&lt;br /&gt;
  Power-on test, press DEL to enter the setup menu (you have got an AMI&lt;br /&gt;
  BIOS haven't you?). Tell it you have no A: drive and a 360K 5.25&amp;quot; B:&lt;br /&gt;
  drive. (See note 2)&lt;br /&gt;
&lt;br /&gt;
  6 Use 22DISK to read (not under OS/2 or windows 95), write and format&lt;br /&gt;
  your 3&amp;quot; disks to your heart's content ! You could also use ANADISK I&lt;br /&gt;
  suppose.&lt;br /&gt;
&lt;br /&gt;
  7 When you've finished, restore the machine its original state. As&lt;br /&gt;
  well as using CPC disks, you'll probably be able to use Spectrum  3&lt;br /&gt;
  disks if you have an appropriate  CPMDISKS.DEF.  If of course you want&lt;br /&gt;
  to use Speccy disks...&lt;br /&gt;
&lt;br /&gt;
  Note 1 : Amstrad's disk drive is reasonably standard, but not quite!&lt;br /&gt;
  When you install it, it claims to be both your physical drive 0 and&lt;br /&gt;
  physical drive 1. As such, if you expect it to be just drive 1 (B:),&lt;br /&gt;
  and leave unit 0 (A:) still plugged in, it will promptly ram the heads&lt;br /&gt;
  of unit 0 hard against the end stop, promptly trashing your unit 0. I&lt;br /&gt;
  found this the hard way, and had to buy a new 3.5&amp;quot; floppy drive.&lt;br /&gt;
&lt;br /&gt;
  Note 2 : If you don't have an AMI BIOS, then this will be different.&lt;br /&gt;
  You may have to run a program from a system disk which came with your&lt;br /&gt;
  computer.&lt;br /&gt;
&lt;br /&gt;
  The pin-outs of the 3&amp;quot; drive are _identical_ to the ones of a 5.25&amp;quot;&lt;br /&gt;
  drive - it will just plug in. It's a long time since I was inside my&lt;br /&gt;
  Einstein, but I'm pretty sure that drive is a 40track SS unit - what a&lt;br /&gt;
  PC would call a 180K drive. Things like the Disk Change line may be&lt;br /&gt;
  different, but if you set up your PC to ignore that (and possibly tell&lt;br /&gt;
  it it's a 360K drive), you should be OK.&lt;br /&gt;
&lt;br /&gt;
  I've used a 3&amp;quot; drive (actually a Double-sided model) with an original&lt;br /&gt;
  IBM XT in this way.&lt;br /&gt;
&lt;br /&gt;
  A reply to the last two paragraphs :&lt;br /&gt;
&lt;br /&gt;
  It actually depends on the type of 3&amp;quot; drive. Some of them had a 34 way&lt;br /&gt;
  connector like the IBM PC 5.25 &amp;quot; drive (i.e. PCB gold plated edge&lt;br /&gt;
  connector) and are compatible. Genuine Amstrad drives on the other hand&lt;br /&gt;
  have a 26-way PCB header which contains all the useful signals, although&lt;br /&gt;
  some have been removed.&lt;br /&gt;
&lt;br /&gt;
  I remember, that the 34 way connectors are only nearly compatible. In&lt;br /&gt;
  those days around 1985, I connected a CPC 464 External drive to&lt;br /&gt;
  another CPM computer with standard 5.25&amp;quot; drives like the PC-drives.&lt;br /&gt;
  It was necessary to swap the lines since the pin numbering was mirrored&lt;br /&gt;
  compared to the standard.&lt;br /&gt;
&lt;br /&gt;
  I also think that the exact layout depends on the version of the&lt;br /&gt;
  computer (CPC 464/664/6128). So be careful and do not ruin your&lt;br /&gt;
  hardware by building sh circuits! (It shouldn't be very difficult to&lt;br /&gt;
  verify which are the GND-lines )&lt;br /&gt;
&lt;br /&gt;
  A complement to this reply&lt;br /&gt;
&lt;br /&gt;
  The Amstrad and PC disk connections are as follows:&lt;br /&gt;
&lt;br /&gt;
  26 pin Amstrad disk drive:&lt;br /&gt;
&lt;br /&gt;
  Index   2       *       *       1       GND&lt;br /&gt;
  DS0     4       *       *       3       GND&lt;br /&gt;
  DS1     6       *       *       5       GND&lt;br /&gt;
  Motor   8       *       *       7       GND&lt;br /&gt;
  Dirn    10      *       *       9       GND&lt;br /&gt;
  Step    12      *       *       11      GND&lt;br /&gt;
  Wdata   14      *       *       13      GND&lt;br /&gt;
  Wenable 16      *       *       15      GND&lt;br /&gt;
  Track0  18      *       *       16      GND&lt;br /&gt;
  WProt   20      *       *       19      GND&lt;br /&gt;
  Rdata   22      *       *       21      GND&lt;br /&gt;
  Side    24      *       *       23      GND&lt;br /&gt;
  N.C ?   26      *       *       25      GND&lt;br /&gt;
&lt;br /&gt;
  34 pin Standard disk drive:&lt;br /&gt;
&lt;br /&gt;
  Head Load       2       *       *       1       GND&lt;br /&gt;
  In Use ?        4       *       *       3       GND&lt;br /&gt;
  DS3             6       *       *       5       GND&lt;br /&gt;
  Index           8       *       *       7       GND&lt;br /&gt;
  DS0             10      *       *       9       GND&lt;br /&gt;
  DS1             12      *       *       11      GND&lt;br /&gt;
  DS2             14      *       *       13      GND&lt;br /&gt;
  Motor           16      *       *       15      GND&lt;br /&gt;
  Dirn            18      *       *       17      GND&lt;br /&gt;
  Step            20      *       *       19      GND&lt;br /&gt;
  Wdata           22      *       *       21      GND&lt;br /&gt;
  Wenable         24      *       *       23      GND&lt;br /&gt;
  Track0          26      *       *       25      GND&lt;br /&gt;
  WProt           28      *       *       27      GND&lt;br /&gt;
  Rdata           30      *       *       29      GND&lt;br /&gt;
  Side            32      *       *       31      GND&lt;br /&gt;
  N.C. ?          34      *       *       33      GND&lt;br /&gt;
&lt;br /&gt;
  Note that on the Amstrad drive, DS3 and DS2 are missing.&lt;br /&gt;
&lt;br /&gt;
  The pins marked with a ? may have been redefined on some&lt;br /&gt;
  drives (e.g. on high density PC drives, one of them is used&lt;br /&gt;
  to change the drive current - I can't remember which now),&lt;br /&gt;
  also on very old single sided drives, the Side signal used to&lt;br /&gt;
  be used to reset the drive. If you are using a 34 way&lt;br /&gt;
  connector drive in an Amstrad, you may want to hard wire&lt;br /&gt;
  Head Load to be permanently enabled (if it is used - not&lt;br /&gt;
  all drives do).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A3.1.3) 3&amp;quot; drive on PC (part three) 02/17/98&lt;br /&gt;
&lt;br /&gt;
  Here is other information by Juan Perez Delgado, as I know nothing&lt;br /&gt;
  of hardware, be cautious. This doesn't apply for Schneider drives.&lt;br /&gt;
&lt;br /&gt;
  1. Read all first&lt;br /&gt;
&lt;br /&gt;
  2. Then you open your PC, and unplug and take off the cable that goes&lt;br /&gt;
      from the FD controller to the FD drives. The cable looks something&lt;br /&gt;
      like this:  (including the twist between the B: and A: connectors)&lt;br /&gt;
     (ctlr = Floppy Disc Controller)&lt;br /&gt;
&lt;br /&gt;
    to FD ctler    to B: drive to A: drive&lt;br /&gt;
         /-\         /-\         /-\&lt;br /&gt;
        2 -|---------|-|---------|-|2&lt;br /&gt;
        4 -|---------|-|---------|-|4&lt;br /&gt;
        6 -|---------|-|---------|-|6&lt;br /&gt;
        8 -|---------|-|---------|-|8&lt;br /&gt;
        10-|---------|-|-\  /----|-|10  ) 16 of ctler, A: thinks it is 10&lt;br /&gt;
        12-|---------|-|- \/ ----|-|12  ) 14 of ctler, A: thinks it is 12&lt;br /&gt;
        14-|---------|-|- /\ ----|-|14  ) 12 of ctler, A: thinks it is 14&lt;br /&gt;
        16-|---------|-|-/  \----|-|16  ) 10 of ctler, A: thinks it is 16&lt;br /&gt;
        18-|---------|-|---------|-|18&lt;br /&gt;
        20-|---------|-|---------|-|20&lt;br /&gt;
        22-|---------|-|---------|-|22&lt;br /&gt;
        24-|---------|-|---------|-|24&lt;br /&gt;
        26-|---------|-|---------|-|26&lt;br /&gt;
        28-|---------|-|---------|-|28&lt;br /&gt;
        30-|---------|-|---------|-|30&lt;br /&gt;
        32-|---------|-|---------|-|32&lt;br /&gt;
        34-|---------|-|---------|-|34&lt;br /&gt;
         \-/         \-/         \-/&lt;br /&gt;
&lt;br /&gt;
  3. Using a screwdriver and a cutter I reordered the wires that go to&lt;br /&gt;
       the A: drive (I left some of them not connected):&lt;br /&gt;
&lt;br /&gt;
    to FD ctler.   to B: drive    to A: drive&lt;br /&gt;
         /-\         /-\&lt;br /&gt;
        2 -|---------|-|-------              You can see that signals&lt;br /&gt;
        4 -|---------|-|-------              2,4,6,10(16 from the ctler)&lt;br /&gt;
        6 -|---------|-|-------                 are not used.&lt;br /&gt;
        8 -|---------|-|---------\&lt;br /&gt;
        10-|---------|-|-\  /-nc  \-|-| 2 (connected to ctler pin 8)&lt;br /&gt;
        12-|---------|-|- \/ -------|-| 4&lt;br /&gt;
        14-|---------|-|- /\ -------|-| 6&lt;br /&gt;
        16-|---------|-|-/  \-------|-| 8&lt;br /&gt;
        18-|---------|-|------------|-| 10&lt;br /&gt;
        20-|---------|-|------------|-| 12&lt;br /&gt;
        22-|---------|-|------------|-| 14&lt;br /&gt;
        24-|---------|-|------------|-| 16&lt;br /&gt;
        26-|---------|-|------------|-| 18&lt;br /&gt;
        28-|---------|-|------------|-| 20&lt;br /&gt;
        30-|---------|-|------------|-| 22&lt;br /&gt;
        32-|---------|-|------------|-| 24&lt;br /&gt;
        34-|---------|-|------------|-| 26&lt;br /&gt;
        \-/          \-/            |-| 28&lt;br /&gt;
                                    |-| 30&lt;br /&gt;
                                    |-| 32&lt;br /&gt;
                                    |-| 34&lt;br /&gt;
                                    \-/&lt;br /&gt;
&lt;br /&gt;
      Of course, odd pins must be connected to wires of ground (odd&lt;br /&gt;
      pins in the drive with odd pins in the ctler, doesn't matter the&lt;br /&gt;
      number).&lt;br /&gt;
&lt;br /&gt;
  4. Next, you open the CPC6128, and get the 3&amp;quot;FD, unplug only the cable&lt;br /&gt;
      that comes from the controller (the one in the 26-pin connector).&lt;br /&gt;
&lt;br /&gt;
  5. Plug-in the cable you have 'build' in step 3 to the FD cntler (as it&lt;br /&gt;
      was before you disconnected it), and connect the CPC 3&amp;quot;FD to the&lt;br /&gt;
      connector whose wires you have reordered. As the connector is 34 pin&lt;br /&gt;
      wide, and the drive is 26-pin, there will be a side not connected&lt;br /&gt;
      (corresponding to pins 28 to 34).&lt;br /&gt;
&lt;br /&gt;
      Now you have the controller cable from the PC controller connected to&lt;br /&gt;
      the 3&amp;quot; drive. I think you can still connect another driver to the&lt;br /&gt;
      other free connector, but I didn't try it because I read some people&lt;br /&gt;
      have burned its controller doing similar things. You leave the power&lt;br /&gt;
      cable of the 3&amp;quot; drive connected to the CPC, as it was before.&lt;br /&gt;
&lt;br /&gt;
  6. Now, you switch on your CPC (monitor, then keyboard). The FD will&lt;br /&gt;
      start running continuously.&lt;br /&gt;
&lt;br /&gt;
  7. Now, you switch on your PC. If all is Ok, nothing should burn :), and&lt;br /&gt;
      the 3&amp;quot; FD will stop running. Then in the bios setup you tell you have&lt;br /&gt;
      a 360Kb 5.25&amp;quot; drive A. You boot the PC again if needed.&lt;br /&gt;
&lt;br /&gt;
  8. In order to use with CPDRead, you must set your drive&lt;br /&gt;
      (cpdread.cfg) as a 360Ko drive with 360Ko disks, and you must set&lt;br /&gt;
      #STEP to 2)&lt;br /&gt;
&lt;br /&gt;
      #STEP set to 1 worked for somebody else.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A3.2.1) 3,5&amp;quot; or 5,25&amp;quot; drive on CPC 06/29/98&lt;br /&gt;
&lt;br /&gt;
  See A5.2 after installing your new drive.&lt;br /&gt;
&lt;br /&gt;
  You can use a 3.5&amp;quot; or 5.25&amp;quot; drive on a CPC. You have to take care&lt;br /&gt;
  about the cabling, as some 6128s use a 36 pin port and the drive only&lt;br /&gt;
  has 34. A normal PC floppy cable (5 connector) can be used to connect&lt;br /&gt;
  drives, although some connectors may need changing. The six problems&lt;br /&gt;
  which can arrive are:&lt;br /&gt;
&lt;br /&gt;
  - The drive has no ready signal. That is true for some older PC&lt;br /&gt;
    drives. In this case, forget it, if you are not able to solder some&lt;br /&gt;
    IC's to simulate the signal.&lt;br /&gt;
&lt;br /&gt;
  - You can only use one side of the disk (180k). If you want to use&lt;br /&gt;
    both sides, you have to solder in a switch, or get another DOS&lt;br /&gt;
    (Vortex XDOS or Dobbertin X-DDOS), the best DOS is ParaDOS.&lt;br /&gt;
&lt;br /&gt;
  - High-density drives have a hi/lo signal not present on CPCs which&lt;br /&gt;
    may cause problems, it is probably best to use older 720k drives.&lt;br /&gt;
&lt;br /&gt;
  - Some 5.25&amp;quot; drives, namely 720k QD drives, may cause problems,&lt;br /&gt;
    however these are not very common and so shouldn't be a cause for&lt;br /&gt;
    concern.&lt;br /&gt;
&lt;br /&gt;
  - Drives may not work properly on the CPC by giving read errors and&lt;br /&gt;
    seek errors, etc. The first thing to do in this event is to clean&lt;br /&gt;
    the edge connector on the CPC with some IPA (head cleaner fluid),&lt;br /&gt;
    and then clean the drive heads in the same way if necessary.&lt;br /&gt;
&lt;br /&gt;
  - The jumper setting on the drive is wrong. On older 5.25&amp;quot; drives&lt;br /&gt;
    you may find that they have been set to Drive 0 (DS0), in which case&lt;br /&gt;
    you need to set the drive to drive 1 (DS1) or use a PC drive cable&lt;br /&gt;
    which has a twist in it.&lt;br /&gt;
&lt;br /&gt;
  To copy disks from 3&amp;quot; in drive A to 3.5&amp;quot;/5.25&amp;quot; in drive B &lt;br /&gt;
	the best method is to use Disckit2/3 that comes with CP/M, depending on&lt;br /&gt;
  which version you have. If Disckit3 doesn't work, Procopy can tackle&lt;br /&gt;
  most disks, and runs from drive B so you can copy it across to your CPC&lt;br /&gt;
  fairly easily. You can read the CPC disks on the PC with 22DISK from&lt;br /&gt;
  Sydex, or Ulrich Doewich's CPDRead, see A1.2.6 and A1.2.8.&lt;br /&gt;
&lt;br /&gt;
  The following diagram is a pin table comparing a modern 1.44Mb 3.5&amp;quot;&lt;br /&gt;
  drive to the drive B connector on a CPC, which you may find useful.&lt;br /&gt;
  Note that although the CPC connector is numbered backward, it is still&lt;br /&gt;
  directly compatible.&lt;br /&gt;
&lt;br /&gt;
    1.44Mb 3.5&amp;quot; drive:                  CPC drive B connector&lt;br /&gt;
&lt;br /&gt;
    All odd pins: Ground -------------&amp;gt; All even pins: Ground&lt;br /&gt;
    2: Hi/lo density -----------------&amp;gt; 33: N/C&lt;br /&gt;
    4: N/C ---------------------------&amp;gt; 31: N/C&lt;br /&gt;
    6: N/C ---------------------------&amp;gt; 29: N/C&lt;br /&gt;
    8: Index -------------------------&amp;gt; 27: Index&lt;br /&gt;
    10: Motor enable A ---------------&amp;gt; 25: N/C&lt;br /&gt;
    12: Drive select B ---------------&amp;gt; 23: Drive select 1 (B)&lt;br /&gt;
    14: Drive select A ---------------&amp;gt; 21: N/C&lt;br /&gt;
    16: Motor Enable B ---------------&amp;gt; 19: Motor On&lt;br /&gt;
    18: Direction select -------------&amp;gt; 17: Direction Select&lt;br /&gt;
    20: Head Step --------------------&amp;gt; 15: Step&lt;br /&gt;
    22: Write data -------------------&amp;gt; 13: Write data&lt;br /&gt;
    24: Write gate -------------------&amp;gt; 11: Write gate&lt;br /&gt;
    26: Track 00 ---------------------&amp;gt; 9: Track 0&lt;br /&gt;
    28: Write protect ----------------&amp;gt; 7: Write protect&lt;br /&gt;
    30: Read data --------------------&amp;gt; 5: Read data&lt;br /&gt;
    32: Head select ------------------&amp;gt; 3: Side 1 select&lt;br /&gt;
    34: Disk change ------------------&amp;gt; 1: Ready&lt;br /&gt;
&lt;br /&gt;
  A detailed guide more specific to 5.25&amp;quot; drives can be found at the All&lt;br /&gt;
  Things CPC website, and there is also information at the other CPC&lt;br /&gt;
  sites, see A2.2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A3.2.2) 3,5&amp;quot; or 5,25&amp;quot; drive on CPC+ (by Simon Matthews)&lt;br /&gt;
&lt;br /&gt;
  See A5.2 after installing your new drive.&lt;br /&gt;
&lt;br /&gt;
  Adding a 3.5&amp;quot; drive to the CPC 6128 was a doddle - 34 way card edge&lt;br /&gt;
  connector on one end, 34 way IDC on the other end and you were away.&lt;br /&gt;
&lt;br /&gt;
  The numbering on the pins was pretty easy, too.  Looking at the&lt;br /&gt;
  connector  from the BACK of the machine, Pins 1 to 33 (odd) ran from&lt;br /&gt;
  left to right along the bottom, pins 2 to 34 (even) ran from left to&lt;br /&gt;
  right along the top.  All of the top pins were grounded, and pin 1&lt;br /&gt;
  (bottom left) was the READY line, which by convention would be denoted&lt;br /&gt;
  by the &amp;quot;stripe&amp;quot; of the ribbon cable.  At the other end, a simple IDC&lt;br /&gt;
  plug connected to the external drive, usually with the &amp;quot;stripe&amp;quot;&lt;br /&gt;
  nearest to the power connector.&lt;br /&gt;
&lt;br /&gt;
  The problem with the CPC+ is that the connector on the back of the&lt;br /&gt;
  computer is 36-way, not 34 and is numbered back to front as well.  So,&lt;br /&gt;
  looking at the connector from the BACK of the machine again, pins 1 to&lt;br /&gt;
  35 (odd) ran from RIGHT TO LEFT on the top of the connector, and pins&lt;br /&gt;
  2 to 36 (even) ran from RIGHT TO LEFT on the bottom of the connector.&lt;br /&gt;
  Again, all of the even pins were grounded.  Here's where it gets&lt;br /&gt;
  tricky...&lt;br /&gt;
&lt;br /&gt;
  This time, pin 33 is READY, pin 31 is SIDE 1 SELECT all the way to pin&lt;br /&gt;
  7 which is INDEX.  In other words, the lines are in the same order,&lt;br /&gt;
  but different pin numbers.  It all sounds quite hectic, but it's easy&lt;br /&gt;
  to sort out in practice.&lt;br /&gt;
&lt;br /&gt;
  Firstly, take a length of 34-way ribbon cable and crimp the 34-way&lt;br /&gt;
  IDC connector on as usual.  At the other end, peel away the cable on&lt;br /&gt;
  the other side of the &amp;quot;stripe&amp;quot; for a few centimetres. Now&lt;br /&gt;
  place this cable in the 36way Amphenol connector so that the stripe&lt;br /&gt;
  corresponds to pin 33; in other words, make sure the LEFTMOST 3&lt;br /&gt;
  blades are left empty. The other edge of the cable should be lying on&lt;br /&gt;
  the RIGHTMOST blade, with the wire you peeled away not connected to&lt;br /&gt;
  anything.&lt;br /&gt;
&lt;br /&gt;
                  ||||||||||||||||||||||||||||||||||&lt;br /&gt;
     &amp;quot;stripe&amp;quot; ---&amp;gt;|||||||34 WAY RIBBON CABLE||||||||&lt;br /&gt;
                  ||||||||||||||||||||||||||||||||||&lt;br /&gt;
                  ||||||||||||||||||||||||||||||||| \&lt;br /&gt;
                  |||||||||||||||||||||||||||||||||  \ &amp;lt;--- Peel away&lt;br /&gt;
                  |||||||||||||||||||||||||||||||||&lt;br /&gt;
  Goes to pin 33-&amp;gt;||||||||||||||||||||||||||||||||| &amp;lt;--- Goes to pin 1&lt;br /&gt;
                  |||||||||||||||||||||||||||||||||&lt;br /&gt;
       pin 35  ---------------------------------------  pin 1&lt;br /&gt;
               \                                       /&lt;br /&gt;
                \       36 WAY AMPHENOL CONNECTOR     /&lt;br /&gt;
          pin 36 ------------------------------------- pin 2&lt;br /&gt;
&lt;br /&gt;
             * LEFTMOST 3 pins (36,35,34) NOT CONNECTED *&lt;br /&gt;
&lt;br /&gt;
  Double check all is Ok, then crimp together.  Now you can test the&lt;br /&gt;
  cable on your external drive.  If the drive is unresponsive, or just&lt;br /&gt;
  spins constantly, try plugging the IDC cable in the other way around;&lt;br /&gt;
  most drives want the &amp;quot;stripe&amp;quot; nearest to the power connector, but a&lt;br /&gt;
  few want it the other way around.&lt;br /&gt;
&lt;br /&gt;
  I know it sounds complex, but have a look at the pin-out diagrams and&lt;br /&gt;
  it's not too bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A3.3) parallel cable 06/08/2001&lt;br /&gt;
&lt;br /&gt;
  The CPCEMU emulator has documentation on how to make such&lt;br /&gt;
  a cable yourself and includes utilities for both the PC and CPC that&lt;br /&gt;
  allow two-way communication and file transfer. However CPCPARA.BAS&lt;br /&gt;
  supplied in this package can extract files from CPC disk drives, not&lt;br /&gt;
  those saved on cassette tape. For files on tape, see A1.2.14.&lt;br /&gt;
&lt;br /&gt;
  following line to be removed on next FAQ&lt;br /&gt;
  See A8.1.1.1 for getting this cable in France.&lt;br /&gt;
&lt;br /&gt;
  If you have a problem with PCPARA.BAS, coming with CPCEMU, load the&lt;br /&gt;
  program into the emulator (put it in the TAPE directory) and save it&lt;br /&gt;
  as an ascii file with this command : SAVE&amp;quot;PCPARA.BAS&amp;quot;,A&lt;br /&gt;
  or use SEND2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A3.4) RS 232 &amp;amp; RS 422&lt;br /&gt;
&lt;br /&gt;
  Neither the CPC nor the PCW have a RS 232. You can buy it, you then&lt;br /&gt;
  just need a communication program on PC and CPC/PCW and a null modem&lt;br /&gt;
  cable to exchange files between the computers.&lt;br /&gt;
&lt;br /&gt;
  Get ftp://ftp.lip6.fr/pub/amstrad/misc/rs232cpc.lzh for a circuit plan for&lt;br /&gt;
  a RS 232 interface, by Tim Riemann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A3.5) Companies&lt;br /&gt;
&lt;br /&gt;
  Commercial companies can transfer your files&lt;br /&gt;
&lt;br /&gt;
  A3.5.1) Locoscript Software (was Locomotive Software) 05/08/2000&lt;br /&gt;
&lt;br /&gt;
  The Locomotive name and products has been sold to SD Micros (SD&lt;br /&gt;
  Microsystems Ltd). For sales write to sales locomotive.com,&lt;br /&gt;
  for support write to support locomotive.com&lt;br /&gt;
&lt;br /&gt;
  See C3.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A3.5.2) Rowansoft&lt;br /&gt;
&lt;br /&gt;
  Contact Tony Gill at tgill alystra.win-uk.net for rates.&lt;br /&gt;
&lt;br /&gt;
  ROWANSOFT, ROWANCRAIG, ARDFERN,&lt;br /&gt;
  BY LOCHGILPHEAD, ARGYLL, PA31 8QN&lt;br /&gt;
  Tel. 01852 500 257&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A3.5.3) Holland Numerics Ltd 09/07/97&lt;br /&gt;
&lt;br /&gt;
  Converts PCW data to PC format. A price list can be obtained by email&lt;br /&gt;
  from phil.holland bcs.org.uk on the web page :&lt;br /&gt;
  http://www.hollandnumerics.demon.co.uk/PCWPRICE.HTM&lt;br /&gt;
  or by post from:&lt;br /&gt;
&lt;br /&gt;
  Philip R Holland&lt;br /&gt;
  Holland Numerics Ltd&lt;br /&gt;
  94 Green Drift&lt;br /&gt;
  Royston&lt;br /&gt;
  Herts SG8 5BT&lt;br /&gt;
  United Kingdom&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A3.5.4) David Simpson&lt;br /&gt;
&lt;br /&gt;
  David Simpson  (email : DAS picknowl.com.au)&lt;br /&gt;
  PO Box 187&lt;br /&gt;
  Mitcham Shopping Centre&lt;br /&gt;
  South Australia  5062&lt;br /&gt;
  Ph +61-8-83731693&lt;br /&gt;
&lt;br /&gt;
  Contact me for rates.&lt;br /&gt;
&lt;br /&gt;
  I also supply belts and/or do the replacement for 3&amp;quot; drives&lt;br /&gt;
&lt;br /&gt;
  I am the contact for Amstrad Computer Club Incorporated in South&lt;br /&gt;
  Australia.&lt;br /&gt;
&lt;br /&gt;
  The club meets weekly on Tuesday evenings between 6:30 and 9:00pm at&lt;br /&gt;
  Torrensville Primary School, Hayward Avenue, Torrensville, SA. While&lt;br /&gt;
  the club is primarily a no-brand PC compatibles club, I and several&lt;br /&gt;
  other members are familiar with CPC and PCW machines and are only too&lt;br /&gt;
  happy to help.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A3.6) Tapes 03/28/2002&lt;br /&gt;
&lt;br /&gt;
  A3.6.1) Using AIFF decoder 03/28/2002&lt;br /&gt;
&lt;br /&gt;
  - digitalize the tape as AIFF or WAV files, using Cool Edit for example,&lt;br /&gt;
  - use AIFFdecoder (A1.2.10) for transforming an AIFF file to&lt;br /&gt;
    plain Amstrad files to put in the TAPE directory  of an emulator,&lt;br /&gt;
   or use CPCFS (A1.2.4) to put the files into a .DSK,&lt;br /&gt;
  - run the Multi-Machine emulator which can directly read .WAV files.&lt;br /&gt;
&lt;br /&gt;
  You can use CPC2TAPE (A1.2.17) to transfer a tape directly from PC to CPC.&lt;br /&gt;
&lt;br /&gt;
  A3.6.2) Using vox2tzx and playtzx 03/28/2002&lt;br /&gt;
&lt;br /&gt;
  Voc2tzx is an utility to transfer cassette programs into CDT tape&lt;br /&gt;
  images for use with emulators. There are instructions at the ADATE&lt;br /&gt;
  archive which describe how to identify and convert various loading&lt;br /&gt;
  systems.&lt;br /&gt;
&lt;br /&gt;
  Playtzx is an utility to convert CDT tape images to a real cassette&lt;br /&gt;
  for use on a real CPC. You can play the CDT through the sound card of&lt;br /&gt;
  your PC.&lt;br /&gt;
&lt;br /&gt;
  Get voc2tzx and playtzx at Word of Spectrum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A4) Maps, solutions, pokes, basic loaders ?&lt;br /&gt;
&lt;br /&gt;
  A4.1) Maps &amp;amp; Solutions 02/14/2000&lt;br /&gt;
&lt;br /&gt;
  Post solutions in the newsgroup, I will store them on lip6.&lt;br /&gt;
&lt;br /&gt;
  - http://hjem.get2net.dk/gunn&lt;br /&gt;
    A lot of adventure games solutions&lt;br /&gt;
&lt;br /&gt;
  - WOS games maps&lt;br /&gt;
     a lot of games maps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A4.2) Pokes 03/05/99&lt;br /&gt;
&lt;br /&gt;
  Starting with CPCEMU 1.3 you can easily poke games with an external&lt;br /&gt;
  database file. If you have new pokes, send them to&lt;br /&gt;
  tous club-internet.fr which maintains a database for CPCEMU. The last&lt;br /&gt;
  database is 1.641 pokes for 576 games, get&lt;br /&gt;
  ftp://ftp.lip6.fr/pub/amstrad/emu-uti/mix09.zip&lt;br /&gt;
&lt;br /&gt;
  Amstrad CPC poke database (for CPCEMU), you can submit your pokes to&lt;br /&gt;
  be added in the database : http://andercheran.aiind.upv.es/~sergio/cpc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A5) Hardware problems&lt;br /&gt;
&lt;br /&gt;
  A5.1) Internal drive 07/22/2000&lt;br /&gt;
&lt;br /&gt;
  If you have the error : 'disk missing', the drive belt should be the&lt;br /&gt;
  problem. The best solution is to come with your old belt in an&lt;br /&gt;
  electronics shop and see the available belts. You should look for&lt;br /&gt;
  one with the dimensions 72mm x 3 mm x 0.5 mm (although I believe it is&lt;br /&gt;
  OK to use belts in the length range of 69-72 mm long and either 3 or&lt;br /&gt;
  4mm wide).&lt;br /&gt;
&lt;br /&gt;
  You can find belts at Paris (75011), reference Koenig 7093.00 at&lt;br /&gt;
  Espace Composants Electronique, 66 rue de Montreuil, métro Nation,&lt;br /&gt;
  phone 01 43 72 30 64, fax 01 43 72 30 67 (http://www.ibcfrance.fr)&lt;br /&gt;
&lt;br /&gt;
  Cibotronic at Paris (France) used to sell them, but they&lt;br /&gt;
  don't have them anymore. The reference was MASTER type CR 4092,&lt;br /&gt;
  dimensions 71.0 x  0.6 x 2.8 mm.&lt;br /&gt;
&lt;br /&gt;
  An U.K. address : Andre Howard at 65 Altyre Way, Beckenham, Kent BR3&lt;br /&gt;
  3ED. Price is #2.25 (UK pounds) including P&amp;amp;P.&lt;br /&gt;
&lt;br /&gt;
  Still in U.K., CPC components sells them as reference AVBELT3 for 18&lt;br /&gt;
  pences. Phone (01772) 654455.&lt;br /&gt;
&lt;br /&gt;
  Pinboard Computers can supply belts, email to Pinboardcomputers btinternet.com&lt;br /&gt;
&lt;br /&gt;
  A working reference in U.K. : maplins reference RK99.&lt;br /&gt;
&lt;br /&gt;
  For Germany, see A8.1.4.4 and A8.1.4.5&lt;br /&gt;
&lt;br /&gt;
  Now it is time to change the belt of an Amstrad CPC 6128/6128+ :&lt;br /&gt;
  - open the CPC by unscrewing the screws at the back of the CPC,&lt;br /&gt;
  without disconnecting anything. For a CPC+ there are screws and 3&lt;br /&gt;
  clips,&lt;br /&gt;
  - unscrew the drive from the CPC,&lt;br /&gt;
  - disconnect the 2 cables (data and electricity),&lt;br /&gt;
  - if you have a CPC+, get out the drive from its metallic place, there&lt;br /&gt;
  are 4 screws and you have to push the drive,&lt;br /&gt;
  - put the drive to let you see the green electronic card,&lt;br /&gt;
  - unscrew the card from the drive,&lt;br /&gt;
  - disconnect the items which goes from the card to the drive to let&lt;br /&gt;
  you lift enough the card and see the belt (you wont be able to detach&lt;br /&gt;
  completely the card from the drive),&lt;br /&gt;
  - remove the belt with your fingers or a screwdriver. In all cases,&lt;br /&gt;
   keep always the drive with the head down, or a nail will fall.&lt;br /&gt;
  It is used for the detection of write protection.&lt;br /&gt;
  - buy a new belt (see above),&lt;br /&gt;
  - put the new belt, reconnect all items, screw again the green&lt;br /&gt;
  electronic card, reconnect the drive to the CPC, close the CPC.&lt;br /&gt;
&lt;br /&gt;
  The other possibility is a fault with the index hole detection.  As&lt;br /&gt;
  well as the large shutter on a 3&amp;quot; disc, there is also a smaller one&lt;br /&gt;
  through which the disc drive can watch for the index hole to go past.&lt;br /&gt;
  There is a LED and an associated detector that watch for this, and if&lt;br /&gt;
  either has gone wrong or got covered in dust you may get disc missing&lt;br /&gt;
  messages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A5.2) External drive 05/15/99&lt;br /&gt;
&lt;br /&gt;
  See A3.2.1 and A3.2.2 for adding a 5,25&amp;quot; or 3,5&amp;quot; drive to your CPC.&lt;br /&gt;
  Then, when the drive is installed, you can't format your disk to the&lt;br /&gt;
  full 720 Ko unless you have a ROM box and another operating system&lt;br /&gt;
  such as RoDOS, ROMDOS (not CPC+ compatible) or ParaDOS (the best one).&lt;br /&gt;
  Parados recognise all ROMDOS formats and can replace ROM slot 7&lt;br /&gt;
  (Amsdos).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A5.3) Components&lt;br /&gt;
&lt;br /&gt;
  The place to go for CPC spares is (coincidentally) a company called&lt;br /&gt;
  CPC Spares in United Kingdom, at +44 1772 654477.&lt;br /&gt;
&lt;br /&gt;
  There are 3 Gate Array, two types being used on 464 (a very old cpc uses&lt;br /&gt;
  400007, the newer ones have 400010).&lt;br /&gt;
&lt;br /&gt;
  The AM40007 is the type used in most CPC464's and they should be&lt;br /&gt;
  available from CPC Ltd. +44 1772 654455. They're gonna be expensive&lt;br /&gt;
  though, probably about 25-35 pounds.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A6) How can I help the Amstrad world ?&lt;br /&gt;
&lt;br /&gt;
  A6.1) Updating the FAQ&lt;br /&gt;
&lt;br /&gt;
  By sending corrections, modifications, new informations for this FAQ&lt;br /&gt;
  to roussin noos.fr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A6.2) Commercial games becoming freeware 07/31/2004&lt;br /&gt;
&lt;br /&gt;
  If you know addresses of authors who wrote programs on CPC/PCW, send&lt;br /&gt;
  me their address, I will write them to ask the persmission for letting&lt;br /&gt;
  their games to become freeware or shareware (they still will retain&lt;br /&gt;
  the copyright, even after all these years).&lt;br /&gt;
&lt;br /&gt;
  See http://genesis8.free.fr/gamecal.php&lt;br /&gt;
  for the games that already became freeware, or almost freeware&lt;br /&gt;
  (authors stating that they don't care for the distribution of their games).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A6.3) Adding files to ftp.lip6.fr 04/15/2001&lt;br /&gt;
&lt;br /&gt;
  You can send me your latest production. As there is no upload&lt;br /&gt;
  directory on lip6, you will need to email your programs to&lt;br /&gt;
  roussin noos.fr, or send them to ftp.nvg.ntnu.no/pub/cpc/incoming,&lt;br /&gt;
  I will then put it on ftp://ftp.lip6.fr/pub/amstrad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A6.4) Updating ALL_CPC, ALL_HW, ALL_ROM, ALL_UTIL 04/14/2002&lt;br /&gt;
&lt;br /&gt;
  Frederic Herlem (frederic.herlem planetis.com) is writing the complete&lt;br /&gt;
  inventory of the CPC programs, get v08 and help him to update it :&lt;br /&gt;
  ftp://ftp.lip6.fr/pub/amstrad/misc/all_cpc.zip&lt;br /&gt;
&lt;br /&gt;
  Kevin Thacker (amstrad aiind.upv.es) wrote :&lt;br /&gt;
&lt;br /&gt;
  - inventory of all hardware produced for the CPC (v1.0 is 02/04/97)&lt;br /&gt;
    ftp://ftp.lip6.fr/pub/amstrad/misc/all_hw.zip&lt;br /&gt;
  - inventory of all CPC ROM software, (v1.0 is 02/04/97)&lt;br /&gt;
    ftp://ftp.lip6.fr/pub/amstrad/misc/all_rom.zip&lt;br /&gt;
  - inventory of all CPC utilities, commercial or not, (v1.0 is 02/04/97)&lt;br /&gt;
    ftp://ftp.lip6.fr/pub/amstrad/misc/all_util.zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A7) Commercial programs which are now PD, freeware or shareware 07/31/2004&lt;br /&gt;
&lt;br /&gt;
  See http://genesis8.free.fr/gamecal.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A8) Useful addresses and information&lt;br /&gt;
&lt;br /&gt;
  A8.1) Addresses&lt;br /&gt;
&lt;br /&gt;
  See A3.4 for a PCW address.&lt;br /&gt;
&lt;br /&gt;
  A8.1.1) FRANCE&lt;br /&gt;
&lt;br /&gt;
  A8.1.1.1) removed 05/18/2001&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A8.1.1.2) Futur's 10/31/99&lt;br /&gt;
&lt;br /&gt;
  Futur's is a french group, they do many things. They bring you the&lt;br /&gt;
  Soundplayer (a better Digiblaster). It connects on the printer port.&lt;br /&gt;
  The Soundplayer is used by Protracker and Digitracker. You can do it&lt;br /&gt;
  yourself for about 5 euros of electronic components. The electronic&lt;br /&gt;
  plan is in the paper zine Quasar issue 9, see A9.1.3. With this little&lt;br /&gt;
  marvellous thing, you can have 8bit samples, instead of 4bit samples.&lt;br /&gt;
  The SoundPlayer+ is a better SoundPlayer, which can include Virtual&lt;br /&gt;
  Net 96 (see A10.5) for a bit more more, or which can use a CPC+ port instead&lt;br /&gt;
  of the normal CPC printer port.&lt;br /&gt;
&lt;br /&gt;
  The SoundPlayer II now exists. It connects on the expansion port and&lt;br /&gt;
  permits to make mono 8 bits/22KHz digitalized sound. It offers one&lt;br /&gt;
  more port to connect a second Soundplayer (for stereo) or to free the&lt;br /&gt;
  printer port.&lt;br /&gt;
&lt;br /&gt;
  For ordering a SoundPlayer+ or 2, see A9.1.3&lt;br /&gt;
&lt;br /&gt;
  see http://www.chez.com/futurs or http://www.ifrance.com/futurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  old A8.1.1.3 removed, A8.1.1.4 become A8.1.1.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A8.1.1.3) Association des Fans de CPC (AFC) 07/31/2004&lt;br /&gt;
&lt;br /&gt;
  AFC is a french association whose aim is to be a link between the various&lt;br /&gt;
  CPC users. For more information, write to&lt;br /&gt;
&lt;br /&gt;
  Emmanuel Roussin&lt;br /&gt;
  10 rue du Capitaine Menard&lt;br /&gt;
  75015 PARIS&lt;br /&gt;
  FRANCE&lt;br /&gt;
&lt;br /&gt;
  or see http://genesis8.free.fr/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A8.1.2) U.S.A&lt;br /&gt;
&lt;br /&gt;
  A8.1.2.1) Sinotech Ltd.&lt;br /&gt;
&lt;br /&gt;
  A source for Amstrad PCW, PC 1286/2286, PC1386/2386, PC 1512/6400, and&lt;br /&gt;
  PC 1640 disks, ribbons, memory and drive upgrades, etc. in the USA is:&lt;br /&gt;
&lt;br /&gt;
  Sinotech Ltd.&lt;br /&gt;
  218 Terrace Drive&lt;br /&gt;
  Mundelein, Illinois&lt;br /&gt;
  USA    60060&lt;br /&gt;
&lt;br /&gt;
  phone: (708) 566-0504&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A8.1.3) United Kingdom&lt;br /&gt;
&lt;br /&gt;
  A8.1.3.1) Comsoft (was Campursoft) 07/24/2004&lt;br /&gt;
&lt;br /&gt;
  Comsoft doesnt exist anymore. This company was held by Peter Campbell.&lt;br /&gt;
 	Comsoft was selling ParaDOS, DES, and other products. One of these&lt;br /&gt;
  products was the Basic Idea, a tutorial of 42 pages and disc of &lt;br /&gt;
  examples for the basic programmer, now available at :&lt;br /&gt;
	&lt;br /&gt;
  http://www.sean.co.uk/books/amstrad/index.shtm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A8.1.3.2) United Amstrad User Group 06/01/98&lt;br /&gt;
&lt;br /&gt;
  Martyn Sherwood&lt;br /&gt;
  Sherwood&lt;br /&gt;
  13 Rodney Close&lt;br /&gt;
  Bilon&lt;br /&gt;
  Rugby&lt;br /&gt;
  Warwickshire&lt;br /&gt;
  CV22 7HJ&lt;br /&gt;
  United Kingdom&lt;br /&gt;
&lt;br /&gt;
  The group has been going for 10 years now.  We publish a magazine&lt;br /&gt;
  called &amp;quot;CPC User&amp;quot; every couple of months, and have other services&lt;br /&gt;
  for members (disk and tape library, book library, and help-lines).&lt;br /&gt;
  The magazine carries occasional articles on using CPCs in conjunction&lt;br /&gt;
  with PCs (how to set up emulators, share files, and so on), and other&lt;br /&gt;
  articles range from those aimed at beginners to experienced users,&lt;br /&gt;
  with competitions, type-ins, tutorials, and fiction.&lt;br /&gt;
&lt;br /&gt;
  See A2.2 for web address and A9.1.2 for fanzine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A8.1.3.3) Brian Watson&lt;br /&gt;
&lt;br /&gt;
  Brian Watson&lt;br /&gt;
  39 High Street&lt;br /&gt;
  Sutton-in-the-Isle&lt;br /&gt;
  ELY&lt;br /&gt;
  Cambs&lt;br /&gt;
  CB6 2RA&lt;br /&gt;
  England&lt;br /&gt;
&lt;br /&gt;
  Tel (and FAX by arrangement, phone first): +44 (0)1353 777006&lt;br /&gt;
  E-mail : brian spheroid.demon.co.uk&lt;br /&gt;
&lt;br /&gt;
  Supplier or distributor of a number of products and services&lt;br /&gt;
  for users of CPCs, CPC Pluses, PCW/PcWs and some other&lt;br /&gt;
  computers. Fuller details with prices on application&lt;br /&gt;
&lt;br /&gt;
  - The Protext family, including Proprint, Protext Office,&lt;br /&gt;
    Maxam, Utopia etc for the CPC and PCW (also the PC and&lt;br /&gt;
    Atari versions and the Prodata PC database). Free user&lt;br /&gt;
    support at normal phone rates is included with all items&lt;br /&gt;
&lt;br /&gt;
  - Montrac: a new monitor/tracing program to work with Maxam&lt;br /&gt;
&lt;br /&gt;
  - PcW16 operating system upgrades. Free for a DS/HD disc and&lt;br /&gt;
    return postage with your address in a padded bag&lt;br /&gt;
&lt;br /&gt;
  - Pipeline Tutorials for the CPC: a printed tutorial course in&lt;br /&gt;
    parts (and firmware guides) with free example files on disc&lt;br /&gt;
&lt;br /&gt;
  - Second-hand Software: an extensive range for the CPC, all&lt;br /&gt;
    originals with documentation. From 50 pence UK.&lt;br /&gt;
&lt;br /&gt;
  Also editor of 8BIT magazine, and is the Publicity Officer of&lt;br /&gt;
  WACCI CPC club and IEBA (Independent Eight Bit Association)&lt;br /&gt;
&lt;br /&gt;
  Send large Self Adressed Envelop (SAE) or two  International Reply&lt;br /&gt;
  Coupons (IRC) for Brian Watson Software catalogue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A8.1.4) Germany&lt;br /&gt;
&lt;br /&gt;
  A8.1.4.1) Karl-Heinz Weeske&lt;br /&gt;
&lt;br /&gt;
  Karl-Heinz Weeske&lt;br /&gt;
  Potsdamer Ring 10&lt;br /&gt;
  D-71522 Backnang&lt;br /&gt;
  Tel +49 7191 60078&lt;br /&gt;
  Fax +49 7191 60079&lt;br /&gt;
&lt;br /&gt;
  supply of:&lt;br /&gt;
&lt;br /&gt;
  CPC hardware and software, printer ribbons (NQL401 &amp;amp; DMP), circuit&lt;br /&gt;
  diagrams, manuals, etc..., demand an offer list !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A8.1.4.2) Walter Kuhn&lt;br /&gt;
&lt;br /&gt;
  Walter Kuhn&lt;br /&gt;
  EDV-Zubehr&lt;br /&gt;
  Hessenstrasse 7 (Frohnhausen)&lt;br /&gt;
  D-35684 Dillenburg&lt;br /&gt;
  Tel./Fax +49 2771 32688&lt;br /&gt;
&lt;br /&gt;
  supply printer ribbons Schneider/Amstrad, DMP 2000...3160, NLQ&lt;br /&gt;
  401, Joyce, LQ 3500, PCW 8256/8512, PCW 9512,&lt;br /&gt;
  Multistrikeband, Maxell 3&amp;quot;-Disks 10 pack,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A8.1.4.4) Beratung Mewes 06/09/2004&lt;br /&gt;
&lt;br /&gt;
  EDV-Beratung Mewes&lt;br /&gt;
  Gartenstr. 2&lt;br /&gt;
  53902 Bad Muenstereifel&lt;br /&gt;
  Tel. +49 2253 932388&lt;br /&gt;
  Fax  +49 2253 932387&lt;br /&gt;
  Email : s.mewes usa.net&lt;br /&gt;
&lt;br /&gt;
  drive belts (CPC, PCW), 3&amp;quot; drives (PCW), RAM-Extensions, repair&lt;br /&gt;
  service for disc-drives (3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A8.1.4.5) Andreas Micklei 06/19/2004&lt;br /&gt;
&lt;br /&gt;
  Andreas will send out replacement belts for 3 inch drives to anyone in&lt;br /&gt;
  germany. The price is 1,5 euro per belt plus 0,55 euro for postage.&lt;br /&gt;
  Payment is accepted in cash, stamps, bank transfer or CPC hardware.&lt;br /&gt;
&lt;br /&gt;
  To avoid long delays and assure that enough belts are in stock,&lt;br /&gt;
  contact him at nurgle gmx.de&lt;br /&gt;
&lt;br /&gt;
  Andreas Micklei&lt;br /&gt;
  Lefevrestr. 15&lt;br /&gt;
  12161 Berlin&lt;br /&gt;
  GERMANY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A8.2) information&lt;br /&gt;
&lt;br /&gt;
  A8.2.1) the firmware guide&lt;br /&gt;
&lt;br /&gt;
  The unofficial (not the proper SOFT 968 guide) Amstrad CPC Firmware&lt;br /&gt;
  guide is available now! Thanks to Bob Taylor and Thomas Defoe for&lt;br /&gt;
  allowing the distribution.&lt;br /&gt;
&lt;br /&gt;
  David Cantrell has scanned and reformatted the electronical version!&lt;br /&gt;
&lt;br /&gt;
  Get ftp://ftp.lip6.fr/pub/amstrad/misc/firmware.zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A8.2.2) Pin-out for colour monitor&lt;br /&gt;
&lt;br /&gt;
          u&lt;br /&gt;
       5    1&lt;br /&gt;
          6&lt;br /&gt;
       4    2  (viewed from rear)&lt;br /&gt;
          3&lt;br /&gt;
&lt;br /&gt;
  1 = Red      4 = Sync&lt;br /&gt;
  2 = Green    5 = Gnd&lt;br /&gt;
  3 = Blue     6 = Lum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A8.2.3) Programs on ROMs (01/10/99)&lt;br /&gt;
&lt;br /&gt;
  With RamRomBox by Inicron or RAMCARD by RAM7 (see A10.3.2) come the&lt;br /&gt;
  utility Softbrenner which can easily save any program on ROM (or&lt;br /&gt;
  fake, SRAM-simulated ROM in case of a RamRomBox), even ones longer&lt;br /&gt;
  than 16 kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A8.2.4) &amp;quot;The Anatomy for the CPC's&amp;quot; 03/21/2005&lt;br /&gt;
&lt;br /&gt;
  The Anatomy for the CPC is a hardback book, with a pink cover, and&lt;br /&gt;
  contains details of the CPC hardware and software. It describes the&lt;br /&gt;
  different Gate Array versions (including the one with the heat sink),&lt;br /&gt;
  the CRTC, FDC and more, their signals (and what those do), and how&lt;br /&gt;
  these relate to the CPC. It also contains:&lt;br /&gt;
&lt;br /&gt;
  - a listing of the CPC firmware calls, plus the undocumented maths&lt;br /&gt;
    calls.&lt;br /&gt;
  - a commented &amp;quot;disassembly&amp;quot; of the CPC Basic and OS Rom (this comes&lt;br /&gt;
    in the form of an address and a comment. Although not a actual fully&lt;br /&gt;
    commented disassembly, it is still very useful).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A8.2.5) using a CPC joystick on PC 09/18/99&lt;br /&gt;
&lt;br /&gt;
  To use a CPC joystick on PC, get ftp://ftp.lip6.fr/pub/amstrad/misc/DPADPR50.ZIP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 A8.2.6) loading protected BASIC programs  02/20/2000&lt;br /&gt;
&lt;br /&gt;
  'Read Amstrad CPC protected BASIC files&lt;br /&gt;
  '&lt;br /&gt;
  ' Adapted from Clefs Pour Amstrad, 2. Systeme disque&lt;br /&gt;
  ' by Daniel MARTIN and Philippe JADOUL&lt;br /&gt;
  ' (c) Editions du PSI, 1986 ' ISBN 2-86595-256-8 '&lt;br /&gt;
  ' Run, type in filename (can be empty for tape) and&lt;br /&gt;
  ' then type 'CALL &amp;amp;A400'&lt;br /&gt;
  '&lt;br /&gt;
  ' This program will fail for very large BASIC files&lt;br /&gt;
  '&lt;br /&gt;
  ' A line needs to be changed for CPC464s '&lt;br /&gt;
  MEMORY &amp;amp;9FFF&lt;br /&gt;
  INPUT &amp;quot;Filename &amp;quot;; n$&lt;br /&gt;
   n = LEN (n$)&lt;br /&gt;
  FOR i = 1 TO n&lt;br /&gt;
  POKE &amp;amp;A430 + i, ASC (MID$ (n$, i, 1))&lt;br /&gt;
  NEXT i&lt;br /&gt;
  FOR i = &amp;amp;A400 TO &amp;amp;A428&lt;br /&gt;
  READ a$&lt;br /&gt;
  POKE i, VAL (&amp;quot;&amp;amp;&amp;quot; + a$)&lt;br /&gt;
  NEXT i&lt;br /&gt;
  POKE &amp;amp;a401, n&lt;br /&gt;
  DATA 06, 00, 21, 31, A4, 11, 00, A0, CD, 77, BC, 30, 18&lt;br /&gt;
  DATA C5, 21, 70, 01, CD, 83, BC, C1&lt;br /&gt;
  DATA 21, 70, 01, 09, EB, 21&lt;br /&gt;
  DATA 66 : ' Change this to 83 for CPC464s&lt;br /&gt;
  DATA AE, 06, 04&lt;br /&gt;
  DATA 73, 23, 72, 23, 10, FA, CD, 7A, BC, C9&lt;br /&gt;
  PRINT &amp;quot;Type 'CALL &amp;amp;A400'&amp;quot;&lt;br /&gt;
  NEW&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A9) Fanzines&lt;br /&gt;
&lt;br /&gt;
  If french people are interested, don't forget to send stamps to get&lt;br /&gt;
  back your disk or paper fanzine. For foreign people, International&lt;br /&gt;
  Reply Coupons are available from post offices in all EU countries,&lt;br /&gt;
  US, Canada, and most others.  A single  International Reply Coupon&lt;br /&gt;
  (IRC) can be exchanged by the recipient for enough postage stamps&lt;br /&gt;
  to cover airmail for a letter weighing up to 10 grams. For heavier&lt;br /&gt;
  letters, such as those containing disks or zines, send more IRCs!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A9.1) on paper&lt;br /&gt;
&lt;br /&gt;
  A9.1.1) WACCI 07/24/2004&lt;br /&gt;
&lt;br /&gt;
  For more informations see http://www.wacci.org.uk/&lt;br /&gt;
&lt;br /&gt;
  They have a Book Library, Tape library, &amp;quot;Homegrown&amp;quot; Disk Library and&lt;br /&gt;
  PD Disk Library, 3&amp;quot; Disks supplied at 1 pound 50p each, alternative&lt;br /&gt;
  Firmware Guide and Disk, 6 pounds.&lt;br /&gt;
&lt;br /&gt;
  For a free sample copy of the clubs magazine either Email at&lt;br /&gt;
  brian spheroid.demon.co.uk with your name and address.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A9.1.2) CPC User&lt;br /&gt;
&lt;br /&gt;
  A magazine published every couple of months by the United Amstrad&lt;br /&gt;
  User Group (UAUG), see A2.2 and A8.1.3.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A9.1.3) Quasar 05/02/2003&lt;br /&gt;
&lt;br /&gt;
  A french zine, especially about programming on CPC(+). Last issue is&lt;br /&gt;
  no 20 (July 2002), for prices and availibility see their bilingual&lt;br /&gt;
  site at :&lt;br /&gt;
&lt;br /&gt;
  http://www.chez.com/futurs/&lt;br /&gt;
&lt;br /&gt;
  Philippe Rimauro (Futur's/Quasar)&lt;br /&gt;
  8 chemin des Maillos&lt;br /&gt;
  09200 SAINT-GIRONS&lt;br /&gt;
  FRANCE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A9.1.4) Eurostrad 10/31/99&lt;br /&gt;
&lt;br /&gt;
  A french paper zine, most of the articles are translated in english.&lt;br /&gt;
  Last issue is no 12 (summer 1999).&lt;br /&gt;
&lt;br /&gt;
  Thomas FOURNERIE&lt;br /&gt;
  Le Reverdy&lt;br /&gt;
  50530 SARTILLY&lt;br /&gt;
  FRANCE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A9.1.5) Amstrad Action 07/24/2004&lt;br /&gt;
&lt;br /&gt;
  Not a fanzine, but a commercial U.K. newspaper which stopped with&lt;br /&gt;
  issue 117 in June 1995. It was sold with cover tapes containing&lt;br /&gt;
  commercial games. Issue 117 came with North &amp;amp; South.&lt;br /&gt;
&lt;br /&gt;
 	Issues of Amstrad Action are now available online with the permission &lt;br /&gt;
 	of its editor Future Publishing &lt;br /&gt;
 	http://www.futurenet.co.uk/&lt;br /&gt;
 	at the following address :&lt;br /&gt;
	http://cpcoxygen.digi-alt.net/&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
  A9.2) on disk&lt;br /&gt;
&lt;br /&gt;
  A9.2.1) Boxon 07/28/97&lt;br /&gt;
&lt;br /&gt;
  Nicolas Ader (Nicky one)&lt;br /&gt;
  Place du Donjon&lt;br /&gt;
  32320 BASSOUES&lt;br /&gt;
  FRANCE&lt;br /&gt;
&lt;br /&gt;
  Boxon issue 3 is out (07-96 to 02/97).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A9.2.2) Demoniak 11/03/98&lt;br /&gt;
&lt;br /&gt;
  Anthony Nevo (orphee)&lt;br /&gt;
  Le Louya&lt;br /&gt;
  35290 GAEL&lt;br /&gt;
  FRANCE&lt;br /&gt;
&lt;br /&gt;
  Get issues 3 to 6 on ftp://ftp.lip6.fr/pub/amstrad/zines (dmk*.zip)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A9.2.3) Dracula Fanz 08/01/98&lt;br /&gt;
&lt;br /&gt;
  Miguel Fremeaux (Dracula)&lt;br /&gt;
  238 rue du cardinal Allen&lt;br /&gt;
  59553 CUINCY&lt;br /&gt;
  FRANCE&lt;br /&gt;
&lt;br /&gt;
  Last issue is 5 (December 1995) with articles in english, get the&lt;br /&gt;
  issues at ftp://ftp.lip6.fr/pub/amstrad/zines&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A9.2.4) Phaser&lt;br /&gt;
&lt;br /&gt;
  Sebastien Broudin (Seb)&lt;br /&gt;
  1 rue Emile Combes&lt;br /&gt;
  60600 FITZ-JAMES&lt;br /&gt;
  FRANCE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A9.2.5) Better Than Life&lt;br /&gt;
&lt;br /&gt;
  An English disc fanzine, with around 40 articles (all in English)&lt;br /&gt;
  covering a huge range of subjects. Issues 1 to 4 are out, look at&lt;br /&gt;
  ftp://ftp.lip6.fr/pub/amstrad/zines, you can e-mail the editor&lt;br /&gt;
  Richard Fairhurst (CRTC/Systeme D) : richard systemed.u-net.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A9.2.6) Tribal Mag 05/23/99&lt;br /&gt;
&lt;br /&gt;
  A good german zine, with some english articles, issue 8 is the last&lt;br /&gt;
  one. Tribal Mag has now merged with CPC-Telegramm. Web site is :&lt;br /&gt;
  http://tribal-mag.home.pages.de&lt;br /&gt;
&lt;br /&gt;
  All issues are on ftp://ftp.lip6.fr/pub/amstrad/zines&lt;br /&gt;
&lt;br /&gt;
  Jan Deppisch (email : Deppisch Internet-Service.nu)&lt;br /&gt;
  Lechstr. 10a&lt;br /&gt;
  76437 Rastatt&lt;br /&gt;
  GERMANY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A9.2.7) Art of Fantasy&lt;br /&gt;
&lt;br /&gt;
  A TGS/Creators production. It's a discmag that is mainly about&lt;br /&gt;
  non-computer stuff, but instead about stuff like role-playing games,&lt;br /&gt;
  fantasy books, science fiction, stories, etc. Collapse, the editor,&lt;br /&gt;
  gets nearly no contribution, so it would be good to point his mag out&lt;br /&gt;
  a bit... The first issue (the only one out up to now) was German only,&lt;br /&gt;
  but if he gets English stuff, this mag could become international&lt;br /&gt;
  soon! The address:&lt;br /&gt;
&lt;br /&gt;
  Collapse of TGS/Creators&lt;br /&gt;
  Tobias Zimmermann&lt;br /&gt;
  Augsburger Weg 3&lt;br /&gt;
  59439 Holzwickede&lt;br /&gt;
  GERMANY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A9.2.8) Guten TAG&lt;br /&gt;
&lt;br /&gt;
  A new disc german-only mag by the group &amp;quot;TAG&amp;quot;. I don't know much to&lt;br /&gt;
  write about it now... ask the editor! His address:&lt;br /&gt;
&lt;br /&gt;
  Gremlin of TAG&lt;br /&gt;
  Thomas Schilling&lt;br /&gt;
  Rebenweg 28&lt;br /&gt;
  79793 Wutschingen-Horheim&lt;br /&gt;
  GERMANY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A9.2.9) Coders Paradise&lt;br /&gt;
&lt;br /&gt;
  A disc mag for all the programmers out there. All Routines the editor&lt;br /&gt;
  (Steve of Wizcat) gets are published with many explanations&lt;br /&gt;
  (normally). Steve has many problems getting enough stuff for each&lt;br /&gt;
  issue, so pointing him out would be good again... The address:&lt;br /&gt;
&lt;br /&gt;
  Steve of Wizcat&lt;br /&gt;
  Christian Stengel&lt;br /&gt;
  Ihnbergstrasse 9/1&lt;br /&gt;
  73479 Ellwangen&lt;br /&gt;
  Germany&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A9.2.10) CPC-Telegramm 08/04/98&lt;br /&gt;
&lt;br /&gt;
  German Diskzine by&lt;br /&gt;
	&lt;br /&gt;
  Andreas Koenig&lt;br /&gt;
  Hutstr. 7&lt;br /&gt;
  D-91056 Erlangen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A9.2.11) Digital Press 07/11/2004&lt;br /&gt;
&lt;br /&gt;
  At first a german zine with english articles, now a french-german&lt;br /&gt;
  production. Get  the issues at ftp://ftp.lip6.fr/pub/amstrad/zines&lt;br /&gt;
  For information email oliver.floquet manchoo.com :&lt;br /&gt;
&lt;br /&gt;
  Olivier FLOQUET&lt;br /&gt;
  84 rue de Montbray&lt;br /&gt;
  50200 COUTANCE&lt;br /&gt;
  FRANCE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A10) Additional hardware&lt;br /&gt;
&lt;br /&gt;
  For using older additional hardware on a CPC+, you will need an&lt;br /&gt;
  adaptor called a widget, as connections are not the same. They use&lt;br /&gt;
  the same connectors as german CPC (Schneider). All hardware should&lt;br /&gt;
  work with this adaptor, except the standard multiface, see A10.2&lt;br /&gt;
  (06/09/97)&lt;br /&gt;
&lt;br /&gt;
  Look A6.4) for a list of hardware made on CPC.&lt;br /&gt;
&lt;br /&gt;
  A10.1) Hard disks (no more produced)&lt;br /&gt;
&lt;br /&gt;
  A10.1.1) MFM hard drive&lt;br /&gt;
&lt;br /&gt;
  - a Dobbertin MFM interface with 20 MB HD,&lt;br /&gt;
  - in the very early years a Vortex Filecard with 20 MB MFM HD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A10.1.2) AT IDE hard drive&lt;br /&gt;
&lt;br /&gt;
  A10.1.2.1) GIDE 11/08/2004&lt;br /&gt;
&lt;br /&gt;
  The GIDE is a generic Z80 device that allows easy connection of any&lt;br /&gt;
  AT (16 bit) IDE hard drive to a Z80 computer. If your Z80 is&lt;br /&gt;
  socketed, you simply unplug it, plug the GIDE into the Z80 socket, and&lt;br /&gt;
  plug the Z80 into the GIDE. You need to write your own driver&lt;br /&gt;
	software, however.&lt;br /&gt;
&lt;br /&gt;
  Gide doesnt exist for Amstrad CPC, but you will find informations&lt;br /&gt;
  about the GIDE for PCW on : &lt;br /&gt;
  - All about the GIDE interface&lt;br /&gt;
  - KC-Club.GIDE-Interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A10.1.2.2) IDE Drives (by RAM7)&lt;br /&gt;
&lt;br /&gt;
  It uses an ISA IDE controler and an adaptator card wich plugs in the&lt;br /&gt;
  expansion connector. It will be able to use IDE hard drives, CDROM&lt;br /&gt;
  (certainly) and disk drives (1.44 Mo). Not available for the moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A10.2) Multiface II&lt;br /&gt;
&lt;br /&gt;
  A useful add-on, connected to the expansion port, its primary use is&lt;br /&gt;
  to make snapshots, exactly like the emulators. See A1.2.7, an utility&lt;br /&gt;
  to transform multiface snapshot to emulators snapshot.&lt;br /&gt;
&lt;br /&gt;
  There is a special multiface for the CPC+, standard multiface doesn't&lt;br /&gt;
  work on a plus, even with a widget. (06/09/97)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A10.3) ROMBOX&lt;br /&gt;
&lt;br /&gt;
  A10.3.1) ROMCARD and RAMCARD 10/31/99&lt;br /&gt;
&lt;br /&gt;
  Francisco DOS SANTOS&lt;br /&gt;
  123 boulevard Strasbourg&lt;br /&gt;
  94130 NOGENT SUR MARNE&lt;br /&gt;
  FRANCE&lt;br /&gt;
  email : ram7 mail.dotcom.fr (no reply or very slow, best way is&lt;br /&gt;
  to use snail mail)&lt;br /&gt;
&lt;br /&gt;
  The ROMCARD is a ROM box with 4 available slots which accepts 16 Ko&lt;br /&gt;
  (27128) or 32 Ko (27256 or 27C256) EPROM for a maximum of 128 Ko&lt;br /&gt;
  (so better use 32 Ko as there are only 4 slots). Other ROMCARDs&lt;br /&gt;
  can be put in parallel, to add another 128 Ko of ROMs each time.&lt;br /&gt;
&lt;br /&gt;
  The RAMCARD is a ROMCARD that uses 128 Ko of RAM instead of ROM.&lt;br /&gt;
&lt;br /&gt;
  the ramcard, a rombox using RAM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A10.3.2) Inicron ROM-RAM-BOX 04/15/2001&lt;br /&gt;
&lt;br /&gt;
  The RRB is a ROM box that doesn't need EPROMs. Up to 32 EPROMs can be&lt;br /&gt;
  simulated in the 512Kb big RAM (if build the enhanced RRB). Additional&lt;br /&gt;
  to this you can use a normal EPROM from 8-64Kb in a normal EPROM&lt;br /&gt;
  socket. Go at http://www.inicron.de or get&lt;br /&gt;
  ftp://ftp.lip6.fr/pub/amstrad/roms/rrb.zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A10.4) SoundPlayer 1 and 2&lt;br /&gt;
&lt;br /&gt;
  See A8.1.1.2) and A9.1.3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A10.5) Network 10/31/99&lt;br /&gt;
&lt;br /&gt;
  A10.5.1) Virtual Net 96 (VN96)&lt;br /&gt;
&lt;br /&gt;
  Virtual net 96, a network for Amstrad CPC, made by germans, look at&lt;br /&gt;
  (english and german page) :&lt;br /&gt;
&lt;br /&gt;
  http://www.geocities.com/SiliconValley/Park/6129/start.htm&lt;br /&gt;
&lt;br /&gt;
  Get ftp://ftp.lip6.fr/pub/amstrad/misc/vn96eng.lzh (or ger instead of eng)&lt;br /&gt;
  for information about VN96.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A10.5.2) Multi-IO card 05/30/2003&lt;br /&gt;
&lt;br /&gt;
  VN96 doesn't work on a CPC+, but Futur's (see A8.1.1.2) has a plan for a&lt;br /&gt;
  VN96 card for CPC+, which will work of course on plain CPC. But the&lt;br /&gt;
  multi-IO card is more than a VN96 card, it has a standard parallel port&lt;br /&gt;
  where you will be able to connect all parallel devices such as a printer or&lt;br /&gt;
  a ZIP drive when a driver will be ready. The price will be about 15 euros.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A10.6) Future OS 05/31/2003&lt;br /&gt;
&lt;br /&gt;
  Future OS is a new operating system for Amstrad CPC that needs&lt;br /&gt;
  a rombox or a rambox, Future OS is more powerful than amsdos, but&lt;br /&gt;
  amsdos and CP/M programs must be adapted before using them under&lt;br /&gt;
  Future OS (they can even work faster). Type |OS or |FDESK to launch&lt;br /&gt;
  Future OS. For more information, go http://www.FutureOS.de&lt;br /&gt;
  You can use it on emulators like Caprice (install ROMs A B C D&lt;br /&gt;
  in slots 10 to 13) or WinAPE 2.0a4 (doesnt work with WinAPE 2.0a5).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A10.7) Memory extension&lt;br /&gt;
&lt;br /&gt;
  A10.7.1) 256 Kb to 2 Mb MemCard (by RAM7) 05/30/2003&lt;br /&gt;
&lt;br /&gt;
  For 6128 and 6128+, it's compatible with Dk'tronics memory extensions,&lt;br /&gt;
  it plugs on the expansion connector. It uses the same memory managing&lt;br /&gt;
  of the 6128 second 64 Ko bank. It comes with 4 slots of static RAM (128 Kb&lt;br /&gt;
  or 512 Kb). For more information, see A10.3&lt;br /&gt;
&lt;br /&gt;
  Beware the 256 Kb and 512 Kb models use 128 Kb RAM, the 1 and 2 Mo use&lt;br /&gt;
  512 Kb RAM. An extra cable is also needed.&lt;br /&gt;
&lt;br /&gt;
  the memcard, a memory extension compatible with Dktronics&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A10.7.2) Inicron RAM-BOX 04/24/2000&lt;br /&gt;
&lt;br /&gt;
  A 512 Ko RAM extension for Amstrad CPC by Inicron, get&lt;br /&gt;
  ftp://ftp.lip6.fr/pub/amstrad/misc/rambox.zip&lt;br /&gt;
  or go at http://www.inicron.de&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A10.8) Card Tridge (by RAM7) 10/31/99&lt;br /&gt;
&lt;br /&gt;
  The Card Tridge can read, copy and store Amstrad CPC+ cartridges with&lt;br /&gt;
  its 512 Ko of RAM). For more information see A10.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A10.9) CPC ISA 03/26/2005&lt;br /&gt;
&lt;br /&gt;
  Connect ISA cards on your CPC by Siou (siou free.fr) :&lt;br /&gt;
  http://siou.free.fr&lt;br /&gt;
	&lt;br /&gt;
  As 26th March 2005, playing adlib music (.SA2 files) works with a Sound Blaster, and&lt;br /&gt;
 	low level working of hard disks too, file system must still be done.&lt;br /&gt;
&lt;br /&gt;
  the CPC ISA card&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A10.10) Amstrad MP1 and MP2 10/27/2000&lt;br /&gt;
&lt;br /&gt;
  Amstrad MP1 and MP2 replace the CPC monitor alimentation and permits to&lt;br /&gt;
  use the television (SCART connector) for the video output (MP1 for 464,&lt;br /&gt;
  MP2 for 664/6128). You can also send the video signal on a PC which has&lt;br /&gt;
	a tuner card.&lt;br /&gt;
&lt;br /&gt;
  The MP1 does not provide the 12V connector the 664/6128 needs to power&lt;br /&gt;
  the floppy disk drive. So you can use a 664/6128 with a MP1 but you&lt;br /&gt;
  cant use the floppy, or you need an external power supply.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A10.11) CD-ROM 05/12/2003&lt;br /&gt;
&lt;br /&gt;
  For several years people thought that the CPC version of the&lt;br /&gt;
  Codemasters CD-ROM (using a domestic CD player and a special&lt;br /&gt;
  interface to convert the audio signal into something suitable for&lt;br /&gt;
  Arnold) didnt exist. In fact, the developper (The Oliver Twins) of&lt;br /&gt;
  product acknowledged that it did exist, for more informations :&lt;br /&gt;
  http://andercheran.aiind.upv.es/~amstrad/docs/audiocd2.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A10.12) Mouse 08/06/2000&lt;br /&gt;
&lt;br /&gt;
  You cant use a PC mouse (serial or PS/2). There are Amstrad CPC&lt;br /&gt;
  mouses, but few programs uses them (Advanced OCP art studio) :&lt;br /&gt;
&lt;br /&gt;
  - AMX mouse (the most common),&lt;br /&gt;
  - GENIUS mouse,&lt;br /&gt;
  - DATEL mouse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  A11) Upcoming Meetings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B - Amstrad Notepad (NC100/150/200)&lt;br /&gt;
&lt;br /&gt;
  B0) NC 100/150/200 presentation 08/06/2000&lt;br /&gt;
&lt;br /&gt;
  The Notepad is Amstrad's idea of a simple word processor. It is NOT&lt;br /&gt;
  a PC-compatible and is NOT the PenPad PDA.&lt;br /&gt;
&lt;br /&gt;
  The NC100, launched in september 1992,  is about A4 size with a LCD&lt;br /&gt;
  screen (80 car. x 8 lines), nearly full size keyboard, a PCMCIA memory&lt;br /&gt;
  card slot on the left side, four coloured keys, 64 Kb of RAM. It&lt;br /&gt;
  features a word processor, word spell checker, address book,&lt;br /&gt;
  calculator, diary, clock, alarms and BBC basic. There are a serial&lt;br /&gt;
  and parallel ports.&lt;br /&gt;
&lt;br /&gt;
  The NC200, launched in october 1993, has a fold-down LCD screen&lt;br /&gt;
  (80 car. x 16 lines), a 3.5&amp;quot; disk drive, 128 Kb of RAM, new software&lt;br /&gt;
  (spreadsheet and graphics, games).&lt;br /&gt;
&lt;br /&gt;
  The NC150, launched in april 1993, has the look of the NC100 but&lt;br /&gt;
  the NC200 software, 128 Kb of RAM too, and the possibility to connect&lt;br /&gt;
  a 3,5 drive. It exists only in french and italian versions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B1) Emulators&lt;br /&gt;
&lt;br /&gt;
  B1.1) M.E.S.S. 06/09/2004&lt;br /&gt;
&lt;br /&gt;
  See A1.1.20.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B1.2) NC100EM 03/17/2001&lt;br /&gt;
&lt;br /&gt;
  NC100EM by Russell Marks for Linux (svgalib, X, tty) and MSDOS. It&lt;br /&gt;
  supports both the ROM software and ZCN, a free CP/M 2.2 clone. Get&lt;br /&gt;
  it at http://rus.members.beeb.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B2) How can I buy one ? 10/27/2000&lt;br /&gt;
&lt;br /&gt;
  Unfortunately, Tandy finally stopped selling them in November 1996.&lt;br /&gt;
  The best way to buy one now is probably second-hand ads in national&lt;br /&gt;
  computer magazines, &amp;quot;for sale&amp;quot; newsgroups or auctions sites like&lt;br /&gt;
  http://www.ebay.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B3) What peripherals can I use ?&lt;br /&gt;
&lt;br /&gt;
  The Notepads have standard Centronics parallel ports and RS232 9-pin&lt;br /&gt;
  serial ports.  The system has drivers for 9 and 24-pin dot matrix,&lt;br /&gt;
  Canon inkjet and Laserjet printers.  The serial port claims 9600 bps,&lt;br /&gt;
  but I can only make my NC100 work reliably at the full speed using&lt;br /&gt;
  Xmodem and the AC adapter.  This seems to be a common problem probably&lt;br /&gt;
  because the AC adapter supplies 10 volts and the batteries only 6.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B3.1) Printing 07/14/99&lt;br /&gt;
&lt;br /&gt;
  The NC can use dot matrix, inkjet and laser printers with its built-in&lt;br /&gt;
  drivers (for emulating Epson, IBM, Canon, LaserJet). The LaserJet printer&lt;br /&gt;
  driver doesn't seem to be fully implemented. It doesn't  support changing&lt;br /&gt;
  font sizes (at least in the german version of the NC100). If anyone fancies&lt;br /&gt;
  writing the necessary software, we'd love to hear about it...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* B3.2) Extra Memory 09/09/2009&lt;br /&gt;
&lt;br /&gt;
  A  battery-backed PCMCIA memory card (SRAM) will keep data even if&lt;br /&gt;
  your Notepad crashes and increases the available memory.  It also&lt;br /&gt;
  allows you to create a file with BASIC bigger than 2048 bytes. This is&lt;br /&gt;
  because BASIC allocates all available memory on start-up except 2048&lt;br /&gt;
  bytes. The memory card (maximum of 1 Mo) can be bought from :&lt;br /&gt;
&lt;br /&gt;
  - Primary Simulation Inc., 2963 Mozart Drive, Silver Spring,&lt;br /&gt;
    MD 20904, USA. http://www.psism.com/sramsp.htm&lt;br /&gt;
&lt;br /&gt;
-  - Talisman Electronics, P.O. Box 26 Pangbourne, Reading, RG8 8TL.&lt;br /&gt;
-    Telephone 01491 671914. http://www.talisman-uk.com&lt;br /&gt;
&lt;br /&gt;
  - Vikant Corp., 512 Kb or 1Mb cards (http://www.vikant.com or&lt;br /&gt;
    https://secure.webcom.com/vikant/onlineorder.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B3.3) Disks 08/15/99&lt;br /&gt;
&lt;br /&gt;
  Cliff Lawson (NC Project Manager):  if you have an NC200 you already&lt;br /&gt;
  have a disk and built in Ranger disk routines. If you have an NC150&lt;br /&gt;
  then the only bit of Ranger code is the terminal but it contains a hidden&lt;br /&gt;
  &amp;quot;hook&amp;quot; which allows the Ranger external disk to be connected to the&lt;br /&gt;
  machine and if you have an NC100 there is no Ranger code in it at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B4) How do I connect it to a PC ?&lt;br /&gt;
&lt;br /&gt;
  B4.1) What's the cable ?&lt;br /&gt;
&lt;br /&gt;
  Brief instructions are given in the manual. You can either use the LapCat&lt;br /&gt;
  parallel port system or use a standard  &amp;quot;null modem cable&amp;quot;, available&lt;br /&gt;
  from most computer parts shops. If you really want to make your own,  the&lt;br /&gt;
  NC serial port is a 9-pin RS232, and the PC cables are:&lt;br /&gt;
&lt;br /&gt;
  25 pins at PC                      9 pins at PC&lt;br /&gt;
&lt;br /&gt;
  NC           PC                    NC           PC&lt;br /&gt;
  2 ----------- 2                    2 ----------- 3&lt;br /&gt;
  3 ----------- 3                    3 ----------- 2&lt;br /&gt;
  4 ----------- 6                    4 ----------- 6&lt;br /&gt;
  5 ----------- 7                    5 ----------- 5&lt;br /&gt;
  7 ----------- 5                    7 ----------- 8&lt;br /&gt;
  8 ----------- 4                    8 ----------- 7&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B4.2) Settings&lt;br /&gt;
&lt;br /&gt;
  Use a terminal program on the PC (Telix supports XModem file transfers&lt;br /&gt;
  as well, but standard windows terminal/hyperterminal works ok for text).&lt;br /&gt;
  Set both ends to the same speed (9600 is fine), 8 data bits, no parity,&lt;br /&gt;
  1 stop bit, RTS/CTS handshaking on and experiments until it works...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B4.3) Converting Word Processor Files 04/29/2000&lt;br /&gt;
&lt;br /&gt;
  Converter programs are available for both PC and NC to convert from&lt;br /&gt;
  the NC's protext to RTF on the PC :&lt;br /&gt;
&lt;br /&gt;
  - for msdos : ftp://ftp.lip6.fr/pub/amstrad/nc100/nc2rtf.zip&lt;br /&gt;
  - for NC : ftp://ftp.lip6.fr/pub/amstrad/nc100/nc2rtfb.zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B4.4) How do I connect it to a BBC micro 08/15/99&lt;br /&gt;
&lt;br /&gt;
  You will need a 5 pin C-type DIN plug, a 9 pin serial plug, some&lt;br /&gt;
  cable, and the instructions from http://www.gre.ac.uk/~st702/qanda.htm#q11&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B5) BASIC&lt;br /&gt;
&lt;br /&gt;
  Oddly enough, the Notepad includes a copy of BBC BASIC. This allows&lt;br /&gt;
  you to create your own programs and download other peoples. However,&lt;br /&gt;
  some people have found that using the WP to look at a BASIC file can&lt;br /&gt;
  crash the machine, so backup your important files first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B5.1) Where can I find programs for it ?&lt;br /&gt;
&lt;br /&gt;
  - ftp.maekong.york.ac.uk/pub/BBC&lt;br /&gt;
  - http://www.ncus.org.uk&lt;br /&gt;
    Tim's Amstrad NC Users Site, go to links&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B5.2) Can I use the Word Processor to enter listings ?&lt;br /&gt;
&lt;br /&gt;
  Certainly, to go from WP to BASIC type &amp;quot;*EXEC filename&amp;quot; into BASIC&lt;br /&gt;
  (don't forget line numbers). To go from BASIC to WP, load the program&lt;br /&gt;
  and then type:&lt;br /&gt;
&lt;br /&gt;
  *SPOOL document&lt;br /&gt;
  LIST&lt;br /&gt;
  *SPOOL&lt;br /&gt;
&lt;br /&gt;
  Don't put formatting (bold, etc...) in the program.&lt;br /&gt;
&lt;br /&gt;
  B5.3) Can I make a program auto-run ?&lt;br /&gt;
&lt;br /&gt;
  Of course, just save it with the name AUTO and whenever you start&lt;br /&gt;
  BASIC, it'll run.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B6) Other Programs 07/11/99&lt;br /&gt;
&lt;br /&gt;
  ZCN is a free operating system for the NC100. It's largely compatible&lt;br /&gt;
  with CP/M 2.2. It runs most CP/M 2.2 programs, including ZDE, QTERM,&lt;br /&gt;
  Mallard Basic, and Hitech C. It can also run the NC100's ROM BBC Basic&lt;br /&gt;
  as if it were a native ZCN program. You need an NC100 and at least one&lt;br /&gt;
  PCMCIA memory card to use it, a separate computer (perhaps a PC)&lt;br /&gt;
  and a serial lead to get the system code to it for the first time.&lt;br /&gt;
  It's available from ftp://ftp.lip6.fr/pub/amstrad/nc100 or&lt;br /&gt;
  http://www.ncus.org.uk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B7) I've just crashed it...&lt;br /&gt;
&lt;br /&gt;
  If you're lucky, switching it to standby and back will get you out. If&lt;br /&gt;
  you've got context saving on then it definitely won't. Try these:&lt;br /&gt;
  switching on while holding Function; switching on while holding&lt;br /&gt;
  Function, Stop, Del and the right-hand Shift; removing all the&lt;br /&gt;
  batteries (including the lithium cell) and the power adapter and&lt;br /&gt;
  trying to switch on. The last two definitely blank the memory. The&lt;br /&gt;
  first two don't always, but they don't always fix it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B8) I've just broken it...&lt;br /&gt;
&lt;br /&gt;
  Try CPC supplies on +44 1772 654455 (Main switchboard) or Email their&lt;br /&gt;
  fax machine at remote-printer.Sales 6.6.4.4.5.6.2.7.7.1.4.4.tpc.int&lt;br /&gt;
  and ask them to 'phone you! Failing that, call Amstrad (see A2.2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B9) Help! Where to ask 08/15/99&lt;br /&gt;
&lt;br /&gt;
  Since the demise of Amstrad and Tandy stopping to sell the Notepad,&lt;br /&gt;
  the best place to ask for help is the newsgroup comp.sys.amstrad.8bit&lt;br /&gt;
  Free user support on Protext, the NC series word processor,&lt;br /&gt;
  from Brian Watson (protext spheroid.demon.co.uk).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B10) Internet resources 12/17/2000&lt;br /&gt;
&lt;br /&gt;
  - http://www.amstrad.com and http://web.ukonline.co.uk/cliff.lawson&lt;br /&gt;
    official and unofficial Amstrad page&lt;br /&gt;
&lt;br /&gt;
  - ftp://ftp.nvg.ntnu.no/pub/cpc/nc100&lt;br /&gt;
    NVG FTP site&lt;br /&gt;
&lt;br /&gt;
  - http://www.miracles.win-uk.net/NC100&lt;br /&gt;
    New address of Mark Ray NC page&lt;br /&gt;
&lt;br /&gt;
  - http://www.ncus.org.uk&lt;br /&gt;
    Tim's Amstrad NC Users Site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  B11) Credits 08/15/99&lt;br /&gt;
&lt;br /&gt;
  Although I appear to maintain this section, it wouldn't be in its&lt;br /&gt;
  current fine state without the many people who have asked questions&lt;br /&gt;
  and provided answers over the year.  Especially Tim Surtell and&lt;br /&gt;
  Russell Marks, who have provided substantial amounts of information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C - Amstrad PCW&lt;br /&gt;
&lt;br /&gt;
  C0) PCW presentation 08/04/2001&lt;br /&gt;
&lt;br /&gt;
  Amstrad made the following PCW systems :&lt;br /&gt;
&lt;br /&gt;
  1) PCW8256&lt;br /&gt;
  2) PCW8512&lt;br /&gt;
  3) PCW9512&lt;br /&gt;
  4) PcW9512+&lt;br /&gt;
  5) PcW9256&lt;br /&gt;
* 6) PcW10, see http://www.fvempel.nl/pcw10.html&lt;br /&gt;
  7) PcW16&lt;br /&gt;
&lt;br /&gt;
  1) had 180K drives, 2) had a 180 kb A drive and a 720 kb B drive,&lt;br /&gt;
  3) had only 720 kb drives. All subsequent models had 3.5&amp;quot; disks&lt;br /&gt;
  using CP/M format at 720 Kb until 7) when it switched to 1.44 mb in&lt;br /&gt;
  MS-DOS format. The PcW's (no capital 'c') all used EMT rather than&lt;br /&gt;
  EMS early morning start files with 3.5&amp;quot; drives. The PcW 9512+ was a&lt;br /&gt;
  look-alike from the older 9512, including the daisy-wheel printer.&lt;br /&gt;
  The 9256 (256 kb memory) was a redesign of the 8000 series, with&lt;br /&gt;
  thesame dot matrix printer and keyboard, but in a more modern&lt;br /&gt;
  lookingdesign. The PcW 10 resembled the 9256 but had 512 Ko.&lt;br /&gt;
&lt;br /&gt;
  The PcW16 is a radical digression who's sole &amp;quot;raison d'être&amp;quot; was to&lt;br /&gt;
  make a true WYSIWYG product but this meant a change in the screen&lt;br /&gt;
  and processor (to 16MHz) which meant that it could not be kept&lt;br /&gt;
  compatible with the previous models (though documents ARE compatible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C1) Emulators and utilities&lt;br /&gt;
&lt;br /&gt;
  C1.1) Emulators&lt;br /&gt;
&lt;br /&gt;
  C1.1.1) Joyce 06/09/2004&lt;br /&gt;
&lt;br /&gt;
  A superior PCW emulator with loads of features. Currently at version 2.02&lt;br /&gt;
  (stable) or 2.1.5 (unstable). The 2.1.1 emulates the PcW 16 as well, version&lt;br /&gt;
  2.02 all the other PCW and PcW models.&lt;br /&gt;
&lt;br /&gt;
  JOYCE 2.x is an integrated program: most utilities for e.g. converting disks to &lt;br /&gt;
  images (including MicroDesign disks) or vice versa, can be accessed through the&lt;br /&gt;
  menus. Features include, but are not limited to:&lt;br /&gt;
&lt;br /&gt;
  - emulation of all PCW's (as from 2.1.1) with additional memory and hardware.&lt;br /&gt;
  - emulation of additional hardware includes amongst others: mouse, serial/&lt;br /&gt;
    parallel port and 2mb of memory;&lt;br /&gt;
  - support of actual disc drives;&lt;br /&gt;
  - virtual hard disc drives (8 mb each);&lt;br /&gt;
  - DOS directories for reading or writing, export and import tools;&lt;br /&gt;
  - one disc image included, with loads of CP/M tools, for use with JOYCE;&lt;br /&gt;
  - a variety of settings, including the original color settings of the PCW &lt;br /&gt;
    screens;&lt;br /&gt;
  - printer support. Either through LPT ports or rerouted to file (e.g. superb &lt;br /&gt;
    matrix printer emulation in Adobe PDF files);&lt;br /&gt;
  - the Windows version allows for easy creation of print screens (very useful&lt;br /&gt;
    for an editor);&lt;br /&gt;
&lt;br /&gt;
  Check the documentation for obtaining or creating the boot disks.&lt;br /&gt;
&lt;br /&gt;
  Available on http://www.seasip.demon.co.uk/Unix/Joyce/&lt;br /&gt;
&lt;br /&gt;
 The (older) version for DOS v 1.36 is also still available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C1.1.2) Joyce MAC 11/08/2004&lt;br /&gt;
&lt;br /&gt;
  MACOs port of Joyce by Richard Bannister at&lt;br /&gt;
  http://www.bannister.org/software/emu.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C1.1.3) M.E.S.S. 06/09/2004&lt;br /&gt;
&lt;br /&gt;
  See A1.1.20&lt;br /&gt;
&lt;br /&gt;
  You need the boot images. M.E.S.S. should not emulate other hardware&lt;br /&gt;
  than the standard (i.e. no Centronics parallel port on a PcW 9256).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C1.2) Utilities 08/04/2001&lt;br /&gt;
&lt;br /&gt;
  See C2.2) for some PD stuff. A listing of the better commercial utilities&lt;br /&gt;
  as well as PD will follow shortly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C2) Where can I find emulators, ROMs and programs ? 08/08/2000&lt;br /&gt;
&lt;br /&gt;
  C2.1) FTP sites 07/24/2004&lt;br /&gt;
&lt;br /&gt;
  - ftp://ftp.demon.co.uk/pub/cpm/&lt;br /&gt;
    Demon UK, Amstrad directory, containing lots of programs for the PCW.&lt;br /&gt;
&lt;br /&gt;
  - ftp://ftp.nvg.ntnu.no/pub/cpc/pcw/&lt;br /&gt;
    NVG, a few PCW programs.&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
  C2.2) WWW 10/03/2004&lt;br /&gt;
&lt;br /&gt;
  - http://www.locomotive.com&lt;br /&gt;
    Locomotive Software, co-author of the Amstrad CPC and PCW ROMs&lt;br /&gt;
    bought in 2000 by SD Micros, see below&lt;br /&gt;
&lt;br /&gt;
  - http://members.aol.com/sdmicro&lt;br /&gt;
     new owner of Locomotive name and products&lt;br /&gt;
&lt;br /&gt;
  - http://web.ukonline.co.uk/cliff.lawson&lt;br /&gt;
    a site by an Amstrad member staff with information, files for all&lt;br /&gt;
    the Amstrad computers. The official Amstrad site :&lt;br /&gt;
    http://www.amstrad.com&lt;br /&gt;
&lt;br /&gt;
  - http://ai.ansible.co.uk/&lt;br /&gt;
    Ansible information, makers of AnsibleIndex for LocoScript,&lt;br /&gt;
    AnsibleIndex Pro and AILINK (to convert LocoScript data to e.g. Word).&lt;br /&gt;
    Free downloadable CPM.EXE (freebies) to copy files from CF2DD to DOS.&lt;br /&gt;
&lt;br /&gt;
* - http://www.fvempel.nl&lt;br /&gt;
    PCW Joyce Computer Club : PCW serial communication with a PC,&lt;br /&gt;
    mounting a 3.5&amp;quot; drive on a PCW, a 3&amp;quot; on a PC, repairing a 3&amp;quot; drive,&lt;br /&gt;
    upgrading memory to 512 Ko, club news, PCW ads. Downloadable Public&lt;br /&gt;
    Domain.&lt;br /&gt;
&lt;br /&gt;
  - http://www.seasip.demon.co.uk&lt;br /&gt;
    John Elliott's CP/M page, he is the man behind some of the finest PCW&lt;br /&gt;
    freeware around and provides links to many generic CP/M resources.&lt;br /&gt;
    He's also put up exhaustive information on the PCW's XBIOS.&lt;br /&gt;
    Lots of downloadable conversion tools, also for graphics.&lt;br /&gt;
&lt;br /&gt;
   - http://www.systemed.net/pcw/&lt;br /&gt;
    Richard Fairhurst page about PCW hardware reference&lt;br /&gt;
&lt;br /&gt;
  - http://www.xs4all.nl/~ianmacd/PCW.html&lt;br /&gt;
    Ian Macdonald, about PCW&lt;br /&gt;
&lt;br /&gt;
  - Protext related issues: Brian Watson (protext spheroid.demon.co.uk).&lt;br /&gt;
    http://www.cix.co.uk/~mtilley/protext&lt;br /&gt;
&lt;br /&gt;
  - Walnut Creek CD-ROM has a PCW section, no longer sold, but get it at&lt;br /&gt;
    ftp://ftp.barnyard.co.uk/cpm/walnut-creek-CDROM/ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C2.3) Various sources 08/08/2000&lt;br /&gt;
&lt;br /&gt;
  A PCW CD-ROM by P.D. Blake with over 4,500 files of PCW software,&lt;br /&gt;
  including all of his commercial titles and around two hundred PD and&lt;br /&gt;
  Freeware titles. There is also a large amount of Microdesign material&lt;br /&gt;
  and just about every programming language and utility available for&lt;br /&gt;
  the PCW. The CD costs £25 + £2.50 P&amp;amp;P. You can order it by&lt;br /&gt;
  sending a cheque for £27.50, made payable to Mr P.D.Blake to:&lt;br /&gt;
  P.D.Blake, 32 Sample avenue, Beverley, E.Yorks, HU17 9DW, England.&lt;br /&gt;
  E-mail address : pdblake yahoo.co.uk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C3) Transferring between PCW and PC 08/08/2004&lt;br /&gt;
&lt;br /&gt;
  Transferring data from floppy discs is easy if you have a 3.5&amp;quot; drive:&lt;br /&gt;
  all PcW's have one. A PCW (the 8256, 8512 and 9512) can be provided&lt;br /&gt;
  with such a drive. The free software CPM.EXE from Ansible Index at&lt;br /&gt;
  http://ai.ansible.co.uk/ can read CF2DD (double sided&lt;br /&gt;
  discs for drive B). If you have a 3.5&amp;quot; disc, reading it in a PC will be&lt;br /&gt;
  easy. If you only have a 3&amp;quot; drive you could opt for mounting the B&lt;br /&gt;
  drive in your PC (see C3.4). If you have other logical disc formats on&lt;br /&gt;
  3.5&amp;quot;, Sydex 22DISK will give you the best results.&lt;br /&gt;
&lt;br /&gt;
  Summarising the hardware conversion alternatives:&lt;br /&gt;
&lt;br /&gt;
  - 3.5&amp;quot; drive on PCW (DIY possible),&lt;br /&gt;
  - LocoLink between PCW and PC,&lt;br /&gt;
  - RS 232 serial null-modem between PCW and PC (DIY possible),&lt;br /&gt;
  - 3&amp;quot; drive on PC (DIY possible),&lt;br /&gt;
  - acoustic communication (DIY possible).&lt;br /&gt;
&lt;br /&gt;
  The 22DISK, MS Odball, PCWTrans and CPM.EXE software is freely&lt;br /&gt;
  available: 22DISK still is shareware formally and should be purchased&lt;br /&gt;
  (USD 25, an unsupported license) with Sydex. Of these programs 22DISK&lt;br /&gt;
  is the only one that can handle all disc formats for the PCW : some&lt;br /&gt;
  formats require additional definitions, some common ones listed in&lt;br /&gt;
* http://www.fvempel.nl/euro1.zip.&lt;br /&gt;
  If you have discs that have been formatted by DISCTOOL (the&lt;br /&gt;
  one from Matthijs Vermeulen, not the Moonstone program with the same&lt;br /&gt;
  name) which offered variable combinations of directory- and data-&lt;br /&gt;
* allocation, see the site http://www.fvempel.nl/.&lt;br /&gt;
&lt;br /&gt;
  There are quite a lot of commercial alternatives around: among others&lt;br /&gt;
  Moonstone 2-in-1 and DDriverPCW (a DOS driver that allows disks to be&lt;br /&gt;
  read and written on a PC). These two can still be obtained from&lt;br /&gt;
  LocoScript Software.&lt;br /&gt;
&lt;br /&gt;
  Besides the hardware process you will need to pay some attention to&lt;br /&gt;
  the file format as well: at least where LocoScript is concerned.&lt;br /&gt;
&lt;br /&gt;
  The simple and cheap option is to export the documents on the PCW to&lt;br /&gt;
  ASCII (American Standard Code for Information Interchange - the&lt;br /&gt;
  &amp;quot;language&amp;quot; that works with most computers, except for Windows which&lt;br /&gt;
  uses a slightly different dialect called ANSI). By exporting to ASCII&lt;br /&gt;
  your files will be restricted to the default 256 characters available&lt;br /&gt;
  with ASCII (quite a downgrade from the 600 as offered by LocoScript)&lt;br /&gt;
  and you will lose formatting, headers, footers, page numbers and&lt;br /&gt;
  accents. When you opt for the PAGE IMAGE attribute, present on all&lt;br /&gt;
  versions of LocoScript, you will at least retain some details like tab&lt;br /&gt;
  stops (replaced by spaces) and margins, but you definitely will have to&lt;br /&gt;
  check the end-result on the PC. When combined with mounting a 3&amp;quot; drive&lt;br /&gt;
  on a PC or (more expensive) a 3.5&amp;quot; drive on a PCW it is a cheap DIY&lt;br /&gt;
  solution, useful and reliable for confidential data or data that you do&lt;br /&gt;
  not want to risk losing in the mail.&lt;br /&gt;
&lt;br /&gt;
  If you want to retain the document settings, layout, accents and the&lt;br /&gt;
  like you will have to convert the document(s), using the available&lt;br /&gt;
  commercial programs:&lt;br /&gt;
	&lt;br /&gt;
  - Ansible AILINK&lt;br /&gt;
  - LocoScript Professional or LocoScript Easy with or without LocoLink&lt;br /&gt;
    (for Windows)&lt;br /&gt;
&lt;br /&gt;
  Which one suits you best depends on your budget and purpose. The&lt;br /&gt;
  AILINK http://ai.ansible.co.uk/ can read CF2DD format disks and convert&lt;br /&gt;
  all LocoScript formats (from 1 to 4) into a.o. Richmond Text Format,&lt;br /&gt;
  a format commonly used in word processors. At GBP 19.50 it may sound&lt;br /&gt;
  expensive and I have not used all of it's features but it seems like a&lt;br /&gt;
  good alternative to reformatting documents or buying a DOS word&lt;br /&gt;
  processor for conversion only. AILINK is a true Windows program&lt;br /&gt;
  (allowed for the occasional DOS box) and offers amongst others RTF,&lt;br /&gt;
  RTF for Word, WordPerfect 4.2, ASCII, ANSI, HTML and some other&lt;br /&gt;
  formats.It allows for mass copying and converting and seems to produce&lt;br /&gt;
  a 1:1 copy including formatting and accents. Do note that AILINK can&lt;br /&gt;
  read from CF2DD only (no CF2 or other formats) and does not solve the&lt;br /&gt;
  3&amp;quot; problem, unless you mount a 3&amp;quot; drive in your PC.&lt;br /&gt;
&lt;br /&gt;
  The LocoScript alternatives are more expensive but they also provide&lt;br /&gt;
  the hardware solution (LocoLink, part of LocoScript, does). Data&lt;br /&gt;
  conversion retaining layout and accents is also seamless but there is&lt;br /&gt;
  no mass-tagging option and the PCW LocoScript source file has to be&lt;br /&gt;
  translated to PC LocoScript source file before it can be exported to&lt;br /&gt;
  other formats. But then again, the LocoScript PC word processing&lt;br /&gt;
  software is not bad either. LocoFile datafiles need to be &amp;quot;squashed&amp;quot;&lt;br /&gt;
  by LocoScript Professional or PC Easy before they can be used.&lt;br /&gt;
  Conversion requirements do not apply for LocoLink for Windows, only&lt;br /&gt;
  the earlier version requires it.&lt;br /&gt;
&lt;br /&gt;
  To use the data from a LocoFile datafile with other PC software you&lt;br /&gt;
  will need to use LocoScript Professional or LocoScript PC Easy&lt;br /&gt;
  Mailmerge commands to output the data to a LocoScript document. You&lt;br /&gt;
  should then export the document as above. Or LocoLink for Windows can&lt;br /&gt;
  be used to convert datafiles to DBase or FoxPro formats.&lt;br /&gt;
&lt;br /&gt;
  I have heard from other projects on the subject, but have not seen&lt;br /&gt;
  products so far.&lt;br /&gt;
&lt;br /&gt;
  Using Mallard BASIC programs on the PC is possible, though the&lt;br /&gt;
  following aspects should be considered. First of all, Mallard BASIC has&lt;br /&gt;
  a special file format that (I think) can be read by the PC version of&lt;br /&gt;
  Mallard BASIC only (an expensive and therefore rare item: I do believe&lt;br /&gt;
  it is still for sale, though). Saving it into ASCII format is easy&lt;br /&gt;
  though: just add the attribute A when you (re-)save a program, e.g.&lt;br /&gt;
  SAVE &amp;quot;PROG.BAS&amp;quot;,A will save the file in ASCII format. This format can&lt;br /&gt;
  be read by 99% of the other Basic dialects. Also, unprotect your&lt;br /&gt;
  file program, if it has been protected, before exporting it.&lt;br /&gt;
&lt;br /&gt;
  Although Mallard BASIC is pretty much standard in command convention,&lt;br /&gt;
  there are a couple of exceptions.&lt;br /&gt;
  1) JetSam keyed-index databases cannot be used by other Basic dialects:&lt;br /&gt;
     redesign of the program to a sequential or random access database&lt;br /&gt;
     structure will be required.&lt;br /&gt;
  2) GSX, the Graphics System eXtension, does not have an MS Dos&lt;br /&gt;
     equivalent. In fact it is not part of BASIC but if your application&lt;br /&gt;
     uses this add-on on the PCW, it can obstruct the proper working on&lt;br /&gt;
     another Basic language. It will have to be replaced by graphics&lt;br /&gt;
     functionality offered by the other Basic.&lt;br /&gt;
  3) Machine code and peeks &amp;amp; pokes will not work at all. If the&lt;br /&gt;
     program contains too much of these: forget it...&lt;br /&gt;
  4) The different hardware can be a bit of a problem when the program&lt;br /&gt;
     uses the PCW hardware to it's maximum. The big screen and the&lt;br /&gt;
     Epson FX-80 emulation on the printer may force you to re-write&lt;br /&gt;
     the program.&lt;br /&gt;
&lt;br /&gt;
  I found that good old GWBasic, supplied in numerous quantities with MS&lt;br /&gt;
  Dos, works best when porting PCW Basic source to other computers. Check&lt;br /&gt;
  a program up-front for the mentioned issues and decide whether it is&lt;br /&gt;
  worth your while to adopt it on a PC, to redesign it on a PC or to use&lt;br /&gt;
  a PCW emulator on the PC. Do be careful when modifying a PCW Mallard&lt;br /&gt;
  BASIC program on the PC, though!&lt;br /&gt;
&lt;br /&gt;
  Using PC data on a PCW is also possible: ASCII would be the normal&lt;br /&gt;
  standard here but several Dos and Windows programs offer export&lt;br /&gt;
  formats for older software (e.g. dBaseII, SuperCalc II) too. LocoScript&lt;br /&gt;
  Professional or LocoScript Easy documents can be read by LocoScript&lt;br /&gt;
  2.50 or later on the PCW if they have been saved in the LocoScript 2/3&lt;br /&gt;
  format, a feature offered by LocoScript Professional 2 or LocoScript&lt;br /&gt;
  PC Easy (version 1.01 or later).&lt;br /&gt;
&lt;br /&gt;
  LocoFile databases from a PC need to be extracted to a LocoScript&lt;br /&gt;
  document and can be converted to the PCW. On the PCW the LocoFile&lt;br /&gt;
  database needs to be rebuild.&lt;br /&gt;
&lt;br /&gt;
  Software Versions and Requirements (Howard Fisher)&lt;br /&gt;
&lt;br /&gt;
  To use LocoLink, LocoScript Professional or LocoScript PC Easy is&lt;br /&gt;
  required. The above information applies to versions since 1 st January&lt;br /&gt;
  94 - LocoLink for LocoScript Professional, Version 1.08 or later of&lt;br /&gt;
  LocoScript Professional and Version 1.01 or later of LocoScript PC&lt;br /&gt;
  Easy. To export from LocoScript on the PC to the PCW you need v2.50&lt;br /&gt;
  or later of LocoScript on the PCW. LocoLink for Windows can&lt;br /&gt;
  convert documents and datafiles produced with any version of&lt;br /&gt;
  LocoScript.&lt;br /&gt;
&lt;br /&gt;
  Alternatively, you can use a disc transfer service both to copy the&lt;br /&gt;
  discs and if necessary convert the files to other PC word processor&lt;br /&gt;
  formats.&lt;br /&gt;
&lt;br /&gt;
  Here are those which can transfer and/or convert files :&lt;br /&gt;
&lt;br /&gt;
  - http://www.locomotive.com,&lt;br /&gt;
  - http://members.aol.com/sdmicro,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C3.1) 3.5&amp;quot; drive to a PCW 06/09/2004&lt;br /&gt;
  (this section by Axel_Berger Su2.Maus.De)&lt;br /&gt;
&lt;br /&gt;
  Amstrad uses a 26-pin floppy bus, which is exactly similar to the 34&lt;br /&gt;
  pin Shugart bus but with 4 signals, that are never used anyway, left&lt;br /&gt;
  out. In both cases all odd numbered lines are grounded and all signals&lt;br /&gt;
  are active low. The unused lines of the Shugart are: (usage of some of&lt;br /&gt;
  them varies, I have tried to state the most common one)&lt;br /&gt;
&lt;br /&gt;
        2:  Density&lt;br /&gt;
        4:  Head Load&lt;br /&gt;
        6:  Drive Select 3, Ready&lt;br /&gt;
       14:  Drive Select 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  So you have to splice the cable and fit it to a 34-pin connector as:&lt;br /&gt;
&lt;br /&gt;
          Amstrad     Shugart     Use&lt;br /&gt;
             2           8      Index&lt;br /&gt;
             4          10      Drive Select 0&lt;br /&gt;
             6          12      Drive Select 1&lt;br /&gt;
             8          16      Motor On&lt;br /&gt;
            10          18      Step Direction&lt;br /&gt;
            12          20      Step&lt;br /&gt;
            14          22      Write Data&lt;br /&gt;
            16          24      Write Gate&lt;br /&gt;
            18          26      Track 00&lt;br /&gt;
            20          28      Write Protect&lt;br /&gt;
            22          30      Read Data&lt;br /&gt;
            24          32      Side Select&lt;br /&gt;
            26          34      Ready&lt;br /&gt;
&lt;br /&gt;
  There is one problem with the choice of drive: The PCW expects to get&lt;br /&gt;
  a &amp;quot;Ready&amp;quot; on pin 26 and IBM compatible 3.5&amp;quot; HD don't deliver it.&lt;br /&gt;
  Drives used to have jumpers but with the Gates monopoly they don't&lt;br /&gt;
  have them anymore, so you might have to improvise something. A direct&lt;br /&gt;
  connection from Drive Select to Ready by Diode will deliver the signal&lt;br /&gt;
  too soon, reading will work, as the computer gives it a second try but&lt;br /&gt;
  writing will be dangerous. I haven't needed to try that, I have got&lt;br /&gt;
  enough old 720 k drives that can be jumpered or otherwise adapted&lt;br /&gt;
  to fit.&lt;br /&gt;
&lt;br /&gt;
  Some people have experimented successfully with a diode protected push&lt;br /&gt;
&lt;br /&gt;
  switch with a signal from motor on. See http://www.king27.freeserve.co.uk/&lt;br /&gt;
&lt;br /&gt;
  *BEWARE OF A SERIOUS PITFALL*&lt;br /&gt;
  Amstrad has the *power connecter wired the other way round* and on top&lt;br /&gt;
  of that uses yellow for 5 V and red for 12 V!!!!&lt;br /&gt;
  &lt;br /&gt;
  Note from FvE: this remark is not valid for the PCW 9512!&lt;br /&gt;
&lt;br /&gt;
  Details and a photo-session on the subject can be viewed on :&lt;br /&gt;
* http://www.fvempel.nl/3pc.html&lt;br /&gt;
&lt;br /&gt;
  I have added a changeover switch that allows me to make the 3.5&amp;quot;&lt;br /&gt;
  either drive A or drive B and the original 3&amp;quot; one the other. Of course&lt;br /&gt;
  my 3.5&amp;quot; disks have to be formatted differently for either use and the&lt;br /&gt;
  3&amp;quot; accessed as drive B will not work, but allows me to boot from 3.5&amp;quot;&lt;br /&gt;
  and then switch over to use the full 720 k capacity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C3.2) LocoLink (for Windows) 06/09/2004&lt;br /&gt;
&lt;br /&gt;
  LocoLink is a cable that can connect a PCW to a PC with a parallel&lt;br /&gt;
  cable (connects to the expansion port of the PCW). The software is a&lt;br /&gt;
  part of LocoScript Professional or LocoScript PC Easy and converts the&lt;br /&gt;
  complicated format of the PCW LocoScript file seamless.&lt;br /&gt;
&lt;br /&gt;
  At present there are two versions around, the old LocoLink and LocoLink&lt;br /&gt;
  for Windows. The latter one provides mouse support and a wider range of&lt;br /&gt;
  direct conversions to PC format WPs.&lt;br /&gt;
	&lt;br /&gt;
  A Laplink serial cable can also be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C3.3) RS 232 08/04/2001&lt;br /&gt;
&lt;br /&gt;
  RS232 can serve for a null-modem cable to connect to a PC. In order to&lt;br /&gt;
  create such a cable (when you buy one in a store, do check for the&lt;br /&gt;
  prescribed connections!) connect the pins as stated below.&lt;br /&gt;
&lt;br /&gt;
  PCW         PC&lt;br /&gt;
   2           3&lt;br /&gt;
   3           2&lt;br /&gt;
   5          20&lt;br /&gt;
   7           7&lt;br /&gt;
  20           5&lt;br /&gt;
&lt;br /&gt;
  Pins 4, 6 and 8 must be connected to each other on the same side! It&lt;br /&gt;
  may look like a classic 'short circuit', but it has to be done !&lt;br /&gt;
  So : 4, 6 and 8 connected to each other on the PCW side and 4, 6 and&lt;br /&gt;
  8 connected on the PC side connected to each other.&lt;br /&gt;
&lt;br /&gt;
  A Laplink serial cable can also be used.&lt;br /&gt;
&lt;br /&gt;
  For software I would recommend Kermit. An old (v 3.0, 1990) but&lt;br /&gt;
  functional DOS version can be downloaded : &lt;br /&gt;
* http://www.fvempel.nl/mskermit.zip. &lt;br /&gt;
* The PCW version is http://www.fvempel.nl/kermpcw.zip.&lt;br /&gt;
  If you cannot convert it to a 3&amp;quot; contact me. A safe speed is&lt;br /&gt;
  9600 bps if you have a standard interface. Other transfer&lt;br /&gt;
  products like CSTAM and Pipeline will do too. If you have a high&lt;br /&gt;
  speed model you may try a higher baud rate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C3.4) 3&amp;quot; Drive on PC  08/04/2001&lt;br /&gt;
&lt;br /&gt;
  Operating a 3&amp;quot; 720Kb drive on a PC is very well possible: the cable&lt;br /&gt;
  required is already presented under A3.1 (the CPC resembles the PCW in&lt;br /&gt;
  this respect). However, in view of my experiences with it I would&lt;br /&gt;
  recommend it only to experienced Do-It-Yourselfers. I would not take&lt;br /&gt;
  the risk and go through the trouble for just 10 3&amp;quot; disks. Besides the&lt;br /&gt;
  hardware troubles you probably still face the problem of how to convert&lt;br /&gt;
  LocoScript to a format common on PC's. If you absolutely want to do it,&lt;br /&gt;
* consult http://www.fvempel.nl/3pc.html (specific details&lt;br /&gt;
  for the PCW and a photo session).&lt;br /&gt;
&lt;br /&gt;
  Getting the data on a PC is a problem only with a 3&amp;quot; drive as mounted&lt;br /&gt;
  in an 8256, 8512 or 9512. When you have a 3.5&amp;quot; fitted there are plenty&lt;br /&gt;
  of utilities around to read from CF2DD format (Ansible's free&lt;br /&gt;
  downloadable CPM.EXE, the shareware program 22DISK from Sydex or the&lt;br /&gt;
  PCWTrans/MS Odball programs by John Elliott). The next problem is&lt;br /&gt;
  getting the data into a format that can be used on a PC: most programs&lt;br /&gt;
  (dBase, SuperCalc, Masterfile, TasWord, WordStar, MicroDesign) have a&lt;br /&gt;
  version commonly available for MS Dos and the CP/M file can therefore&lt;br /&gt;
  be imported in the PC counterpart easily and without loss of details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C3.5) Acoustic communication  08/08/2000&lt;br /&gt;
&lt;br /&gt;
  At present experiments with acoustic communications are being&lt;br /&gt;
  conducted (in Spain). This would allow for cheap one-way communication&lt;br /&gt;
  (only the PCW to PC) that requires a PCW 8000 model, a PC with a sound&lt;br /&gt;
  card and a microphone. A short BASIC listing (that, will be made&lt;br /&gt;
  available after release of the programs) can be typed in on the PCW&lt;br /&gt;
  and will allow files to be converted into beeps (call it morse) that&lt;br /&gt;
  can be received by the microphone and converted back into files again&lt;br /&gt;
  on the PC.&lt;br /&gt;
&lt;br /&gt;
  The software works already: the speed (at present 25 bps) is not very&lt;br /&gt;
  fast but it is a very promising project that finally could provide 3&amp;quot;&lt;br /&gt;
  PCW'ers with a cheap and easy way to exchange small data files. The&lt;br /&gt;
  object is to produce a program protocol that can reliably send and&lt;br /&gt;
  receive up to 400bps with the additional + feature to record it on&lt;br /&gt;
  tape, thus allowing for playback. Subject to be continued.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C4) Shops supporting PCW 06/09/2004&lt;br /&gt;
&lt;br /&gt;
  Mike Mackenzie (AVCOM Services)&lt;br /&gt;
  Brisbane, AUSTRALIA&lt;br /&gt;
  Phone/Fax:  07 32775701 (in Australia)&lt;br /&gt;
  International callers use &amp;quot;61 7&amp;quot; instead of &amp;quot;07&amp;quot;&lt;br /&gt;
  Email : avcom gil.com.au&lt;br /&gt;
&lt;br /&gt;
  Elliam Associates still supports the Amstrad 8256, 8512 and 9512 in&lt;br /&gt;
  the US with software, hardware, supplies and repairs. Their address is&lt;br /&gt;
&lt;br /&gt;
  P.O box 2664, Atascadero, CA 93423, USA&lt;br /&gt;
  Phone (805) 466-8440&lt;br /&gt;
  Fax (805) 461-1666&lt;br /&gt;
&lt;br /&gt;
  Pinboard, repairs, parts and disc drives. UK.&lt;br /&gt;
  Pinboardcomputers btinternet.com&lt;br /&gt;
  http://www.btinternet.com/~pinboardcomputers&lt;br /&gt;
&lt;br /&gt;
  Merline Serve, hardware and systems, books, consumables, repairs,&lt;br /&gt;
  parts, games, conversion. See their large, downloadable, catalogue.&lt;br /&gt;
  http://www.midnight.uk.com/merline&lt;br /&gt;
&lt;br /&gt;
  Cambrian Computers, 50-52 Paget Street, Grangetown Cardiff&lt;br /&gt;
  44  2920 384646 still undertakes repairs&lt;br /&gt;
&lt;br /&gt;
  SD Microsystems Ltd, who took over LocoScript Software in 1999, are&lt;br /&gt;
  dedicated to the profesional support of the Amstrad PCW in general&lt;br /&gt;
  and all LocoScript products in particular. We offer probably the most&lt;br /&gt;
  comprehensive range of software and supplies for this market and can&lt;br /&gt;
  be contacted by phone on 08700 736427, by mail at PO Box 99 Thetford&lt;br /&gt;
  UK IP24 1NA, by email at sales locoscript.com or via our web site:&lt;br /&gt;
  http://www.locoscript.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  To add a 3&amp;quot; drive to your PC you will need a 3&amp;quot; Disk Kit which&lt;br /&gt;
  includes both the drive and software to copy files from a  3&amp;quot; disc to&lt;br /&gt;
  a DOS disc. This is available from Eureka on 01329 239953.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  There are also some enthusiasts who continue to support the&lt;br /&gt;
  machines, including limited spares and repairs :&lt;br /&gt;
&lt;br /&gt;
  - Geoffrey Hayes on +44 1606 - 784697&lt;br /&gt;
  - John King at http://www.pcwking.freeserve.co.uk for technical information,&lt;br /&gt;
    spares and some second user software.&lt;br /&gt;
  - Ron King at http://www.king27.freeserve.co.uk for technical information&lt;br /&gt;
    and repairs.&lt;br /&gt;
  - Anthony Hill at +44 2920 618012 or 07778 044696, email : anthony.rhill tiscali.co.uk&lt;br /&gt;
 &lt;br /&gt;
  HCC Amstrad Gebruikers Groep (Dutch only):&lt;br /&gt;
  http://www.hccnet.nl/hccworld/groeperingen/groepering.cfm?groep=AMS&lt;br /&gt;
  or directly at http://www.amstradcg.nl/&lt;br /&gt;
&lt;br /&gt;
  Some clubs continue to exist in supporting the PCW, though many&lt;br /&gt;
  have expanded to include PC's:&lt;br /&gt;
  - British Amstrad PCW club&lt;br /&gt;
  - Crawley PCW club&lt;br /&gt;
  - North Wales Computer club contact http://www.nwcc.org.uk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  HCC Amstrad Gebruikers Groep (Dutch), web site will open in October 2001:&lt;br /&gt;
&lt;br /&gt;
  http://www.hccnet.nl/hccworld/groeperingen/groepering.cfm?groep=AMS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Look also for A8.1.4.4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C5) Hardware&lt;br /&gt;
&lt;br /&gt;
  C5.1) Printer 08/04/2001&lt;br /&gt;
&lt;br /&gt;
  The original PCW printers can't be used on another computer, being&lt;br /&gt;
  controlled by the PCW itself.&lt;br /&gt;
&lt;br /&gt;
  The 9 pin matrix printers, as supplied with the PCW 8256, PCW 8512,&lt;br /&gt;
  PcW 9256 and PcW 10 are basically the same. They are not fully&lt;br /&gt;
  compatible, though. Printers for the:&lt;br /&gt;
&lt;br /&gt;
  8256            can be used with the 8512 too. Separate data (flat)&lt;br /&gt;
                  cable and power cord;&lt;br /&gt;
  8512            can be used with the 8256 too. Separate data (flat)&lt;br /&gt;
                  cable and power cord;&lt;br /&gt;
  9256            only for the 9256. Integrated data and power cable,&lt;br /&gt;
                  IBM/Centronics connector which is NOT Centronics&lt;br /&gt;
                  compatible!!!&lt;br /&gt;
  10              only for the 10. Connector type of the 8256/8512 but&lt;br /&gt;
                  integrated data and power supply.&lt;br /&gt;
&lt;br /&gt;
  All of these printers are basically identical, support 7 bit Epson&lt;br /&gt;
  FX-80 and use Seikosha SP 800/SP 1000 ribbons (available in both nylon&lt;br /&gt;
  and carbon).&lt;br /&gt;
&lt;br /&gt;
  The matrix printer is one of the first parts that will wear and&lt;br /&gt;
  eventually break down (after 10 or more years). Spares cannot be&lt;br /&gt;
  obtained and repair is often an expensive and insufficient option. I&lt;br /&gt;
  can supply used print heads (at postal expenses) but no guarantee&lt;br /&gt;
  towards quality or life span. In view of the price of a new computer&lt;br /&gt;
  plus printer, expanding a PCW with a Centronics printer interface might&lt;br /&gt;
  be a realistic alternative.&lt;br /&gt;
&lt;br /&gt;
  You would need to pay attention to the availability of printer drivers&lt;br /&gt;
  for LocoScript and CP/M and/or the emulation modes offered by the new&lt;br /&gt;
  printer. The original PCW printer is Epson FX compatible: partly&lt;br /&gt;
  (7 bits only). Other common emulations used on PCW's are HP Laserjet&lt;br /&gt;
  III, Diablo 630 and Canon BJ.&lt;br /&gt;
&lt;br /&gt;
  The daisy wheel printer as supplied with the PCW 9512 and PcW 9512+&lt;br /&gt;
  are compatible with each other only. The part that can break down first&lt;br /&gt;
  in this printer is the hammer, which is subject to violet action.&lt;br /&gt;
  Spares can be obtained and replacing it is easy. The standard ribbon&lt;br /&gt;
  type is Olympia Carrera II.&lt;br /&gt;
&lt;br /&gt;
  Some of the 9000 models were supplied with standard non-Amstrad&lt;br /&gt;
  printers as well, a common model was a Canon but Epsons were supplied&lt;br /&gt;
  too. Being standard models of printers, they are beyond the scope&lt;br /&gt;
  of this document.&lt;br /&gt;
&lt;br /&gt;
  The PCW 9512, PcW 9512+, PcW 10 and PcW 16 have a standard parallel&lt;br /&gt;
  Centronics printer interface, the other types can be equipped with&lt;br /&gt;
  such a port through the expansion port (by means of an add-on&lt;br /&gt;
&lt;br /&gt;
  interface). Several models were made some of them featuring&lt;br /&gt;
  additional options like a serial RS 232 port, a real-time clock,&lt;br /&gt;
  or additional memory (up to 2mb). There is a lot of software for the&lt;br /&gt;
  PCW's that can make use of external printer: LocoScript (using&lt;br /&gt;
  softfonts - downloaded from the RAM disc) and MicroDesign (up to 400&lt;br /&gt;
  dpi graphics) are the top in this respect. But utilities like&lt;br /&gt;
  landscape printing and screen dumping in text or graphics mode for&lt;br /&gt;
  CP/M are around too. Again, before considering attaching an external&lt;br /&gt;
  printer to the PCW, attention should be paid to the best combination(s)&lt;br /&gt;
  available!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C5.2) Keyboard 08/08/2000&lt;br /&gt;
&lt;br /&gt;
  Three different keyboard layouts were produced for most PCW's: the&lt;br /&gt;
  QWERTY lay-out used for the majority, the QWERTZ for Germans&lt;br /&gt;
  (Schneider's) and AZERTY for French machines.&lt;br /&gt;
&lt;br /&gt;
  Usually reliable sources have told me that the entire series of PCW&lt;br /&gt;
  keyboards (8256, 8512, 9512, 9256, 9512+ and 10, that is) can be&lt;br /&gt;
  exchanged. I have not tested them all but found that the Teqniche (an&lt;br /&gt;
  XT keyboard  meant for the 8000 series) does indeed work with a 9000&lt;br /&gt;
  model, so the statement should be true. In how far all keys will&lt;br /&gt;
  respond depends on the software version used but I see not much reason&lt;br /&gt;
  to exchange keyboards, unless you want to use the 9512/9512+/Teqniche&lt;br /&gt;
  keyboards on the other machines. PCW keyboard do not work on other&lt;br /&gt;
  computers (or the other way around).&lt;br /&gt;
&lt;br /&gt;
  Interesting detail is that the PCW keyboards (already customised to&lt;br /&gt;
  work as a dedicated word processor) can be altered entirely to match&lt;br /&gt;
  the user preferences. Besides the standard CP/M SETKEYS.COM there is a&lt;br /&gt;
  more user friendly SMARTKEYS (a Resident System Extension, RSX) and&lt;br /&gt;
  LocoScript has the LocoKey program available to do the job.&lt;br /&gt;
&lt;br /&gt;
  A negative side effect of the customised keyboard is the confusion&lt;br /&gt;
  when confronted with standard key-notation of PC (or CPC's for that&lt;br /&gt;
  matter). Here are some useful keys to remember in CP/M:&lt;br /&gt;
&lt;br /&gt;
  PCW:                            Other computers:&lt;br /&gt;
  EXIT                            ESC&lt;br /&gt;
  ALT                             CTRL&lt;br /&gt;
  SHIFT+EXTRA+EXIT                CTRL+ALT+DEL&lt;br /&gt;
  You will find the three keystrokes above useful when reading computer&lt;br /&gt;
  books or magazines: they confirm to the standards in the computer&lt;br /&gt;
  industry. ALT+P will for instance function as a toggle to turn print&lt;br /&gt;
  output (next to screen output) on or off. EXIT will work for certain&lt;br /&gt;
  strokes: it is the ESCape character that allows control over the&lt;br /&gt;
  hardware. This is usually from software to e.g. set the printer&lt;br /&gt;
  to italic. You can input some of these ESCape codes through the&lt;br /&gt;
  keyboard:&lt;br /&gt;
  EXIT+E+EXIT+H+ENTER will clear the screen. CP/M 3.0 converts all input&lt;br /&gt;
  to capital letters unfortunately so all small letter ESC's will not&lt;br /&gt;
  work: consult a good book on the subject. Some special key stokes on&lt;br /&gt;
  the PCW:&lt;br /&gt;
  PTR                             Printer control status&lt;br /&gt;
  EXTRA+PTR                       graphics screen dump of the screen on&lt;br /&gt;
                                  the printer&lt;br /&gt;
  ALT+ENTER                       CAPS lock (like SHIFT lock, except for&lt;br /&gt;
                                  the numeric keys)&lt;br /&gt;
  ALT+RELAY                       NUM lock (enables the 'numeric path',&lt;br /&gt;
                                  the section were the cursor keys are&lt;br /&gt;
                                  located to produce numbers.&lt;br /&gt;
&lt;br /&gt;
  Using the standard Amstrad SETKEYS (or the enhanced SMARTKEYS) will&lt;br /&gt;
  allow you to redefine practically all keys on the board as long as you&lt;br /&gt;
  know it's number and the number of the character or ESC sequence you&lt;br /&gt;
  want to produce. Certain keys can take more than one character: the&lt;br /&gt;
  so-called expansion keys. There is a shorter way to modify the&lt;br /&gt;
  keyboard: the language. Take a look at the manual for the different&lt;br /&gt;
  accents that will produce.&lt;br /&gt;
&lt;br /&gt;
  The PcW 16 Anne (section D) has a PS/2 compatible keyboard and will&lt;br /&gt;
  NOT work on a Joyce!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C5.3) Disc drive 08/08/2000&lt;br /&gt;
&lt;br /&gt;
  The 3&amp;quot; disc drives of the 8256, 8512 and 9512 can suffer from the some&lt;br /&gt;
  problems as the Amstrad CPC can. Refer to section A5.1) for tips on&lt;br /&gt;
  how to solve these. The usual problem with a PCW 3&amp;quot; drive is a worn or&lt;br /&gt;
  broken drive belt. The typical symptoms are: unable to boot, LED&lt;br /&gt;
  burning constantly, slipping motor noise and a variety of disc and/or&lt;br /&gt;
  data errors. When you have only one boot disk but do have more 3&amp;quot; data&lt;br /&gt;
  disks, try to boot from a data disk. If the PCW does not respond with&lt;br /&gt;
  three beeps (no system disk in the drive) chances are that the belt is&lt;br /&gt;
  defective.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C6) Additional hardware 08/08/2000&lt;br /&gt;
&lt;br /&gt;
  C6.1) Memory up to 512 kb  06/09/2004&lt;br /&gt;
&lt;br /&gt;
  All PCW (except the 16) can take a maximum of 512kb on the main board&lt;br /&gt;
  and all of them do have this amount of RAM, except for the PCW 8256&lt;br /&gt;
  and PcW 9256, which came with a standard of 256kb. These machines can&lt;br /&gt;
  easily be upgraded to 512kb using 8 x IC 41256 in the range of 100-150&lt;br /&gt;
  nanoseconds. This is a standard chip, old fashioned nowadays and&lt;br /&gt;
  should cost a maximum of 10 euros.&lt;br /&gt;
&lt;br /&gt;
  All extra memory goes into the RAM disc M and will not attribute to&lt;br /&gt;
  the computers internal memory capacity of 64kb. CP/M and LocoScript&lt;br /&gt;
  use a so-called bank switching system that allows the use of more than&lt;br /&gt;
  64kb: the remainder of memory will go into drive M. A PCW with 256kb&lt;br /&gt;
  has 110kb drive M, a 512kb model has 368kb drive M. Increasing M can&lt;br /&gt;
  be very useful, as e.g. disc copying is done through the RAM disc. A&lt;br /&gt;
  368 RAM disc will allow you to copy a 720kb disc is 2 passes (4 disc&lt;br /&gt;
  swaps). Moreover: several programs can work with virtual memory (see&lt;br /&gt;
  below) and starting (and running data-intensive) programs from disc M&lt;br /&gt;
  is a lot faster than from floppy disc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C6.2) Memory beyond 512kb 08/08/2000&lt;br /&gt;
&lt;br /&gt;
  Besides the maximum of 512kb on board PCW's can use memory above that:&lt;br /&gt;
&lt;br /&gt;
  the same applies as with normal RAM memory above the bank switching&lt;br /&gt;
  system. It will be assigned to the RAM disc M. Again, this is very&lt;br /&gt;
  useful: besides DiscKit, programs like LocoScript 3/4 (softfonts),&lt;br /&gt;
  MicroDesign (high resolution up to 400dpi), The Rocket, Scratchpad&lt;br /&gt;
  Plus (the latter two spreadsheets), Flipper (multitasking), The&lt;br /&gt;
  Network (networking) and several others can use disc M as virtual&lt;br /&gt;
  memory, thus allowing for more features or capacity.&lt;br /&gt;
&lt;br /&gt;
  Several interfaces (see C6.3) were put on the market, while Cirtech&lt;br /&gt;
  also produced an on-board version called the Sprinter. That card&lt;br /&gt;
  replaced the Z80 processor by a faster processor on 8mHz and expanded&lt;br /&gt;
  memory up to a maximum of (I believe) 2 megabytes. Besides the&lt;br /&gt;
  processor you had to remove a memory chip as well in order to plug the&lt;br /&gt;
  Sprinter card onto the main board of the PCW. It fitted for the 8000&lt;br /&gt;
  models only, as the sizes of the main boards do vary.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C6.3) Interfaces (various purposes) 08/04/2001&lt;br /&gt;
&lt;br /&gt;
  An interface is an add-on that fits on the expansion port on the back&lt;br /&gt;
  of the PCW and provides additional communication ports or memory (at&lt;br /&gt;
  least that is how I define it). An interface is therefore always an&lt;br /&gt;
  add-on, but not the other way around. A break-through connector is a&lt;br /&gt;
  feature that allows a second add-on to be connected on the break-&lt;br /&gt;
  through connector (basically a second expansion port). This&lt;br /&gt;
  'back-packing' of add-ons is commonly known as the Christmas Tree and&lt;br /&gt;
  can lead to potential dangerous situations regarding the power supply&lt;br /&gt;
  of the PCW or the risk of losing an add-on. The later is fatal to the&lt;br /&gt;
  life of any PCW when connected: never (dis-)connect devices while the&lt;br /&gt;
  PCW is switched ON!!! Many of the add-ons are no longer for sale.&lt;br /&gt;
&lt;br /&gt;
  - Amstrad/Schneider (the German model known as CPS - Centronics&lt;br /&gt;
    Parallel Schnitstelle). Offered a Centronics parallel and RS 232C&lt;br /&gt;
    serial port but does not feature a through connector and has a&lt;br /&gt;
    female Centronics connector: with the normal type of printer that&lt;br /&gt;
    requires a cable with Centronics male/Centronics male connectors,&lt;br /&gt;
    rather than the stand Centronics male/IBM.&lt;br /&gt;
  - SCA Professional &amp;amp; Professional Plus. A look-alike from the original&lt;br /&gt;
    CPS, but the Professional Plus has a battery-backed up clock plus&lt;br /&gt;
    software.&lt;br /&gt;
  - Cirtech parallel interface. Low-budget printer interface with only a&lt;br /&gt;
    Centronics port. The right, market-standard, connector though!&lt;br /&gt;
  - Cirtech SpeedPrint. Print spooler that frees the PCW of print jobs.&lt;br /&gt;
  - Cirtech FlashDrive: non volatile RAM disc memory (data remains after&lt;br /&gt;
    switching off the PCW) in two different sizes of 1 Mb and 2Mb, with&lt;br /&gt;
    and without through connector&lt;br /&gt;
&lt;br /&gt;
  - The SCA Rampack is an add-on of additional RAM memory of (I believe)&lt;br /&gt;
    up to a maximum of 2mb. Break through connector for a second add-on.&lt;br /&gt;
  - LocoMotive RAMpack, additional memory. Marketed when LocoScript started&lt;br /&gt;
    featuring downloadle soft fonts (with version 3).&lt;br /&gt;
&lt;br /&gt;
  - Phono Set (Vortex) offered an RS232 port and an acoustic modem. Sure&lt;br /&gt;
    wish a had such a beast, considering the Spanish project for acoustic&lt;br /&gt;
    comm's.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C6.4) ProScan 08/04/2001&lt;br /&gt;
&lt;br /&gt;
  A hand-held scanner, 400dpi, by Creative Technology for use principally&lt;br /&gt;
  with MicroDesign and some other graphics packages. Uses an add-on box&lt;br /&gt;
  for the expansion port (through connector available).&lt;br /&gt;
  &amp;quot;Best in the West&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C6.5) MasterScan 08/08/2000&lt;br /&gt;
&lt;br /&gt;
  A scanner that is fitted on the print head of the 9-pin dot matrix and&lt;br /&gt;
  connects to the expansion port (break through available). Sheets that&lt;br /&gt;
  are fed through the printer can be scanned and digitised.&lt;br /&gt;
&lt;br /&gt;
  Although the format supported was screen size only, the supplied&lt;br /&gt;
  MasterPaint (a Mac look-alike) is a piece of art in itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C6.6) Electric Studio Light Pen 08/08/2000&lt;br /&gt;
&lt;br /&gt;
  Light Pen from Electric Studio (PCW variant of the CPC device) for use&lt;br /&gt;
  with, among others, Fleet Street Editor. Break-through available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C6.7) Electric Studio Digitiser 08/08/2000&lt;br /&gt;
&lt;br /&gt;
  Video digitiser, also from Electric Studio. European PAL system, works&lt;br /&gt;
  neat, although the monochrome effects of saved snapshots sometimes&lt;br /&gt;
  need editing. Break-through connector is available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C6.8) Robotics Hegatron Grafpad II 08/08/2000&lt;br /&gt;
&lt;br /&gt;
  Graphics drawing pallet with a substitute keyboard (using the pen).&lt;br /&gt;
  This package was often used for (electrical) technical drawing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C6.9) Intergem interface 08/08/2000&lt;br /&gt;
&lt;br /&gt;
  A lame duck: an interface that allows you to connect an 80 track disc&lt;br /&gt;
  drive from a BBC computer to the PCW. Not very useful, considering&lt;br /&gt;
  the number of BBC owners that would want to offer their drive(s) for&lt;br /&gt;
  this purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C6.10) Disc drives 08/04/2001&lt;br /&gt;
&lt;br /&gt;
  Several manufacturers made (Pace) and still make (Pinboard) disc&lt;br /&gt;
  drives packages that allow 5.25&amp;quot; or 3.5&amp;quot; disc-drives to be connected&lt;br /&gt;
  to a PCW. In view of the relatively minor adjustments that are&lt;br /&gt;
  required for a do-it-yourself operation not very useful, unless you&lt;br /&gt;
  consider an external power supply (power supply is the PCW's weak&lt;br /&gt;
  spot). And with the exception of the Pinboard drives that are supplied&lt;br /&gt;
  in a variety of models. Besides switchable types that allow a 3&amp;quot; 720kb&lt;br /&gt;
  to be operated next to a 3.5&amp;quot; 720kb (both as drive B) there are also&lt;br /&gt;
  &amp;quot;double deckers&amp;quot; and versions that allow an 8000 model to boot from&lt;br /&gt;
  3.5&amp;quot; 720kb discs.&lt;br /&gt;
&lt;br /&gt;
  Pinboard is still in business : Pinboardcomputers btinternet.com&lt;br /&gt;
  http://www.btinternet.com/~pinboardcomputers/&lt;br /&gt;
&lt;br /&gt;
  LocoScript software supplies a 3.5&amp;quot; that fits into the bay of a 3&amp;quot;&lt;br /&gt;
  drive, email sales locomotive.com&lt;br /&gt;
&lt;br /&gt;
  ACW Soft (Germany) offered a kit to connect a 3&amp;quot; to the PC, Eureka&lt;br /&gt;
  01329 239953 (UK) still does.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C6.11) Hard disks 08/08/2000&lt;br /&gt;
&lt;br /&gt;
  Several hard discs were made too for the PCW series.&lt;br /&gt;
  - The ACC Computer Services came as a 10mb hard disc, with Tasword&lt;br /&gt;
    (LocoScript was not supported).&lt;br /&gt;
  - Vortex (Germany) offered the WD2000 of 20mb.&lt;br /&gt;
  - WEB made a 20mb hard disc.&lt;br /&gt;
  - ASD supplied one in 10/20/40mb capacity with some utilities.&lt;br /&gt;
  - Cirtech offers a variety of hard discs with patched versions of&lt;br /&gt;
    LocoScript 2.&lt;br /&gt;
  Others were made for networking purposes and are very rare, considering&lt;br /&gt;
  the expensive software (back then) which came with these.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C6.12) Margin Maker 08/08/2000&lt;br /&gt;
&lt;br /&gt;
  A small, inexpensive add-on for the 9-pins matrix printer that allows&lt;br /&gt;
  for a shortcoming in the PCW's printer. The PCW printer does have a&lt;br /&gt;
  ruler but lacks a device that will align paper to the chosen left of&lt;br /&gt;
  right margins.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 C6.13) Mice &amp;amp; other input devices 08/04/2001&lt;br /&gt;
&lt;br /&gt;
  Lots were made for the PCW series: the Kempston 2-button and the AMX&lt;br /&gt;
  3-button mice are the most familiar but Star, Electric Studio and&lt;br /&gt;
  Gerdes also marketed these. Most DTP packages support these. The AMX&lt;br /&gt;
  features a through connector.&lt;br /&gt;
&lt;br /&gt;
  Cirtech produced the keymouse, which unlike the others worked through&lt;br /&gt;
  the keyboard socket.&lt;br /&gt;
&lt;br /&gt;
  d'k Tronics produced a joystick for the PCW and several adapters&lt;br /&gt;
  appeared from various producers. Some were supported by PCW software,&lt;br /&gt;
  others were not. A simple diy scheme was around that allowed a&lt;br /&gt;
  joystick to be connected to the cursor keys of the keyboard. Also see&lt;br /&gt;
  the sections on the light pen C6.6) and the graphics tablet C6.8).&lt;br /&gt;
&lt;br /&gt;
  The PcW 16 (see section D) has a PS/2 mouse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C6.14) Teqniche keyboard 08/08/2000&lt;br /&gt;
&lt;br /&gt;
  A standard 102 keyboard (IBM AT type) was made for the Amstrad PCW&lt;br /&gt;
  series. It fits on all PCW's except the PcW 16 (which uses a PS/2&lt;br /&gt;
  type). A real heavy keyboard featuring separate [F.] function keys,&lt;br /&gt;
  cursor and numeric keys, adopted for the Amstrad word processing&lt;br /&gt;
  layout.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C6.15) LocoLink &amp;amp; LocoLink for Windows 08/08/2000&lt;br /&gt;
&lt;br /&gt;
  See C3.2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C6.16) d'k Tronics sound synthesiser. 08/08/2000&lt;br /&gt;
&lt;br /&gt;
  A sound synthesiser was produced by d'k Tronics but I do not know of&lt;br /&gt;
  any details. Some DIY layouts were published in magazines to produce&lt;br /&gt;
  sound add-ons for PCW's.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C6.17) ISA card. 08/04/2001&lt;br /&gt;
&lt;br /&gt;
  The layout to make an Industry Standard Adapter for the PCW is&lt;br /&gt;
  available on http://user.tninet.se/~psr810p/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C6.18) Various DIY layouts. 08/04/2001&lt;br /&gt;
&lt;br /&gt;
  A number of layouts for diy expansions to the PCW can be found on:&lt;br /&gt;
* http://www.fvempel.nl/diy.html&lt;br /&gt;
  Amongst others they contain serial and parallel interfaces plus&lt;br /&gt;
  some applications for these and small modifications to the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  C7) Fanzines 06/09/2004&lt;br /&gt;
&lt;br /&gt;
  No magazines are now produced, the last two PCWPlus and Amstrad PCW&lt;br /&gt;
  User ceased production in 1998 though the information they contained&lt;br /&gt;
  is still valid. Two Fanzines exist The Disc Dive produced by The&lt;br /&gt;
  British Amstrad Group, see above for details of membership or receive&lt;br /&gt;
  copies. The other is PCWtoday, though issue has become intermittent of&lt;br /&gt;
  late. Their web site http://www.pcwtoday.co.uk&lt;br /&gt;
  gives details and subscription rates.&lt;br /&gt;
&lt;br /&gt;
  Joyce Bulletin, in Dutch, is the quarterly magazine of the Joyce&lt;br /&gt;
  Computer Club Amsterdam. It often includes 3&amp;quot; Disks.&lt;br /&gt;
  It is now available as on-line (Dutch only) Adobe PDF file on:&lt;br /&gt;
  http://http://www.amstradcg.nl/.&lt;br /&gt;
  It deviates slightly from the paper version, due to mismatches&lt;br /&gt;
  between the page layout in PDF and printer settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  D) PcW 16&lt;br /&gt;
&lt;br /&gt;
  D0) PcW 16 presentation&lt;br /&gt;
&lt;br /&gt;
  This presentation comes from a csa8 article by Cliff Lawson.&lt;br /&gt;
&lt;br /&gt;
  Unlike all previous 4MHz Amstrad Z80 machines this has a 16MHz Z80&lt;br /&gt;
  core (hence the 16 in PcW16). I know a lot of people &amp;quot;hate&amp;quot; us for not&lt;br /&gt;
  making it binary compatible with the previous PCWs but the fact is&lt;br /&gt;
  that we couldn't do it and design the architecture optimised for&lt;br /&gt;
  graphic word processing software (which means that it is optimised for&lt;br /&gt;
  BitBlt type graphics). The screen is actually kind of VGA compatible&lt;br /&gt;
  in that it is 640x480x2 with a straight raster mapping rather than the&lt;br /&gt;
  character scan raster map and roller RAM of previous PCW (in fact a&lt;br /&gt;
  lot like the 640x200 mode on the CPC I suppose).&lt;br /&gt;
&lt;br /&gt;
  The main thing that makes this machine such a dream to develop for is&lt;br /&gt;
  the graphic OS (windows, icons, mice are all in there in the core OS).&lt;br /&gt;
  The OS was developed in the main by Simon Hargreaves of Creative who&lt;br /&gt;
  is renowned for MicroDesign on the previous PCWs.&lt;br /&gt;
&lt;br /&gt;
  The Rosanne operating system that he has put together is just so&lt;br /&gt;
  advanced compared to the other Z80 operating systems that we have been&lt;br /&gt;
  responsible for in the past that it just seems a shame that any Z80&lt;br /&gt;
  development talent out there isn't considering writing stuff for the&lt;br /&gt;
  system - you'd enjoy it, believe me.&lt;br /&gt;
&lt;br /&gt;
  Apart from the graphic stuff, message based event system (a la&lt;br /&gt;
  Windows) you've got window, menu, dialog, scroll bar, radio button,&lt;br /&gt;
  checkbox, etc. etc. all immediately available in the OS.&lt;br /&gt;
&lt;br /&gt;
  The OS also has a rich set of disk/flash disk filing stuff. The system&lt;br /&gt;
  read/writes MS-DOS format files/disks and can also read (not write)&lt;br /&gt;
  CP/M format files/disks.&lt;br /&gt;
&lt;br /&gt;
  It has fairly advanced memory alloc/dealloc routines and OS support&lt;br /&gt;
  for 24 bit banked addressing.&lt;br /&gt;
&lt;br /&gt;
  There's an RTC in there so functions exist for that.&lt;br /&gt;
&lt;br /&gt;
  Even the spell checker in the WP is exposed as an OS callable&lt;br /&gt;
  function.&lt;br /&gt;
&lt;br /&gt;
  Perhaps best of all is the huge support for variable typefaces for&lt;br /&gt;
  output to both the screen and printer using Swiss and Times in 6, 8,&lt;br /&gt;
  10, 11, 12, 14, 18, 24, 36, 72 point.&lt;br /&gt;
&lt;br /&gt;
  The machine has an unused RS232 on the back so there's a possibility&lt;br /&gt;
  for developing email/news software - perhaps even a web browser!&lt;br /&gt;
&lt;br /&gt;
  There's a help engine in the OS so adding Help support to your apps is&lt;br /&gt;
  also very easy.&lt;br /&gt;
&lt;br /&gt;
  For doing maths there's a 5 byte floating point system in the OS so&lt;br /&gt;
  sin/cos/tan/log/exp are all provided.&lt;br /&gt;
&lt;br /&gt;
  If you want to read more about this operating system then get:&lt;br /&gt;
  ftp://ftp.lip6.fr/pub/amstrad/misc/ROSANDOC.ZIP&lt;br /&gt;
  or email me direct and chat about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  D1) Emulators 08/08/2000&lt;br /&gt;
&lt;br /&gt;
  D1.1) CP/M v2.2 and 3.1 for the PCW16 08/04/2001&lt;br /&gt;
&lt;br /&gt;
  Get this CP/M emulator for PcW16 by John Elliott at&lt;br /&gt;
  http://www.seasip.demon.co.uk/Cpm/pcw16.html&lt;br /&gt;
  or get directly ftp://ftp.lip6.fr/pub/amstrad/cpm/cpm_101.zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  D1.2) M.E.S.S. 08/04/2001&lt;br /&gt;
&lt;br /&gt;
  See above&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  D2) Support 08/04/2001&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
The PcW16 is still supported by Comsoft, Creative technology and&lt;br /&gt;
  Locomotive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
If you know a PcW16 owner who can't download the operating system&lt;br /&gt;
  upgrades from Cliff Lawson's Web site, Brian Watson will supply a free&lt;br /&gt;
  upgrade for a DS/HD disk, return postage, and an address label. Send&lt;br /&gt;
  disk in a reusable padded bag to the address at A8.1.3.3). Or download&lt;br /&gt;
  the boot disc of a PcW 16 (rescue disk) at :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
http://web.ukonline.co.uk/cliff.lawson/files/pcwos.zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
For more frequently asked questions and other support information, go to&lt;br /&gt;
  http://www.pcw16ers.fsnet.co.uk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
E - PDA600 10/10/2000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
E0) PDA600 presentation 10/10/2000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
the PDA600&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
The Amstrad PDA-600 Pen Pad created in 1993 has a weight of 400&lt;br /&gt;
  grams (14 ounces, 0.87 pound), size is 115mm x 160mm x 27mm&lt;br /&gt;
  (6.3&amp;quot; x 4.3&amp;quot; x 1.0&amp;quot;). The CPU is a Zilog Z8S180 at 14.3 Mhz.  There&lt;br /&gt;
  is a reflective LCD screen by Kyorcera is 240 x 320 pixels, 70mm&lt;br /&gt;
  x 93mm (3.5&amp;quot; x 2.75&amp;quot;). The screen is pressure sensitive for Letter&lt;br /&gt;
  based printed handwriting recognition.  It uses 3 batteries and a&lt;br /&gt;
  lithium pile. It has 128 Ko memory, 32 Ko for display, 32 Ko for&lt;br /&gt;
  recogniser software. It can also use PCMCIA type 1 SRAM cards upto&lt;br /&gt;
  2 Mo. It features address list, telephone list, diary, time manager,&lt;br /&gt;
  todo list, note-taker, world time, multiple alarms, calculator,&lt;br /&gt;
  calendar, OS by the Eden Group, Mini serial RS232, Speaker, RTC.&lt;br /&gt;
  Optional Extras : PC-Organiser for Windows, Forms Software, memory.&lt;br /&gt;
  Probably the first PDA on the market.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
F - CP/M 04/21/2002&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
CP/M is an operating system widely used with computers before ms-dos&lt;br /&gt;
  existed. It is available on Amstrad CPC, PCW and the NC with ZCN. For&lt;br /&gt;
  more information, read the newsgroup comp.os.cpm and its FAQ at&lt;br /&gt;
  ftp://rtfm.mit.edu/pub/usenet/comp.os.cpm&lt;br /&gt;
  The Unofficial CP/M Web site : http://www.cpm.z80.de&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I823L814L180LD3.66KLRD3.66KRank13.3MAge2001|03|30l0+1n/awhoissourceRank27.2MTraffic0Video Adv0More dataSummary reportDiagnosisDensity98190n/a&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=User:DavidL&amp;diff=102592</id>
		<title>User:DavidL</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=User:DavidL&amp;diff=102592"/>
				<updated>2018-12-30T13:43:23Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;----&lt;br /&gt;
Hi.&lt;br /&gt;
&lt;br /&gt;
I'm a French software development engineer with several years experience.&lt;br /&gt;
&lt;br /&gt;
I'm currently developing a generic machine emulator, which currently successfully runs a complete Amstrad PC1512. I didn't find any software that could not run on the emulated machine unless it would not run on the original machine.&lt;br /&gt;
I started creating components to emulate the CPC464. This site is a good source for documentation.&lt;br /&gt;
&lt;br /&gt;
[[User:DavidL|DavidL]] ([[User talk:DavidL|talk]])&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
                                                                                                                                              +-------+&lt;br /&gt;
                                                                                                                                              |       |&lt;br /&gt;
  +---------------------------------------------------------------------------------------------------------------------------+               |   ▲   |&lt;br /&gt;
  |                                                                                                                      _    |               |       |        &lt;br /&gt;
  |                                                                                                                     (_)   |       +-------+-------+-------+&lt;br /&gt;
  |     A M S T R A D                                                                C P C   4 6 4                            |       |       |       |       |&lt;br /&gt;
  |                      ORDINATEUR PERSONNEL COULEUR 64K                                                        COULEUR      |       |   ◄   |  COPY |   ►   |&lt;br /&gt;
  +---------------------------------------------------------------------------------------------------------------------------+       |       |       |       |&lt;br /&gt;
                                                                                                                                      +-------+-------+-------+&lt;br /&gt;
  +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----------+               |       |&lt;br /&gt;
  |       |       |       |       |       |       |       |       |       |       |       |       |       |       |           |               |   ▼   |&lt;br /&gt;
  |  ESC  |   1   |   2   |   3   |   4   |   5   |   6   |   7   |   8   |   9   |   0   |   [   |   _   |  CLR  |    DEL    |               |       |&lt;br /&gt;
  |       |   &amp;amp;   |   é   |   &amp;quot;   |   '   |   (   |   ]   |   è   |   !   |   ç   |   à   |   )   |   -   |       |           |               +-------+&lt;br /&gt;
  +-------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+-----------+       +-------+-------+-------+&lt;br /&gt;
  |           |       |       |       |       |       |       |       |       |       |       |       |       |               |       |       |       |       |&lt;br /&gt;
  |    TAB    |   Q   |   W   |   E   |   R   |   T   |   Y   |   U   |   I   |   O   |   P   |   |   |   &amp;lt;   |               |       |   7   |   8   |   9   |&lt;br /&gt;
  |           |       |       |       |       |       |       |       |       |       |       |   ^   |   *   |               |       |       |       |       |&lt;br /&gt;
  +-----------+-+-----+-+-----+-+-----+-+-----+-+-----+-+-----+-+-----+-+-----+-+-----+-+-----+-+-----+-+-----+-+    ENTER    |       +-------+-------+-------+&lt;br /&gt;
  |             |       |       |       |       |       |       |       |       |       |       |       |       |             |       |       |       |       |&lt;br /&gt;
  |    CAPS     |   A   |   S   |   D   |   F   |   G   |   H   |   J   |   K   |   L   |   /   |   +   |   &amp;gt;   |             |       |   4   |   5   |   6   |&lt;br /&gt;
  |    LOCK     |       |       |       |       |       |       |       |       |       |   :   |   =   |   #   |             |       |       |       |       |&lt;br /&gt;
  +-------------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+-------------+       +-------+-------+-------+&lt;br /&gt;
  |                 |       |       |       |       |       |       |       |       |       |       |       |                 |       |       |       |       |&lt;br /&gt;
  |      SHIFT      |   Z   |   X   |   C   |   V   |   B   |   N   |   M   |   .   |   %   |   ?   |  @ \  |       SHIFT     |       |   1   |   2   |   3   |&lt;br /&gt;
  |                 |       |       |       |       |       |       |       |   ;   |   ù   |   ,   |   $   |                 |       |       |       |       |&lt;br /&gt;
  +-----------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----------------+       +-------+-------+-------+&lt;br /&gt;
                            |                                                                       |       |                         |       |       |       |&lt;br /&gt;
                            |                                                                       |  CTRL |                         |   0   |   .   | ENTER |&lt;br /&gt;
                            |                                                                       |       |                         |       |       |       |&lt;br /&gt;
                            +-----------------------------------------------------------------------+-------+                         +-------+-------+-------+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Template_talk:CpcPower&amp;diff=102591</id>
		<title>Template talk:CpcPower</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Template_talk:CpcPower&amp;diff=102591"/>
				<updated>2018-12-30T11:11:37Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: Created page with &amp;quot;== Duplicate template == This is a duplicate template of :Template:CPCPower.  I think these two pages need fusionning (preserving history), but I do not have administratio...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Duplicate template ==&lt;br /&gt;
This is a duplicate template of [[:Template:CPCPower]].&lt;br /&gt;
&lt;br /&gt;
I think these two pages need fusionning (preserving history), but I do not have administration rights to do it.&lt;br /&gt;
&lt;br /&gt;
--[[User:DavidL|DavidL]] ([[User talk:DavidL|talk]]) 06:11, 30 December 2018 (EST)&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Template:BrokenLink&amp;diff=102590</id>
		<title>Template:BrokenLink</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Template:BrokenLink&amp;diff=102590"/>
				<updated>2018-12-30T11:06:45Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: + Category:External link templates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
This template is used to present an alternative link to an archive on web.archive.org of a web site that became unavailable.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;BrokenLink|''url''|''year''|''month''|''day''|''hour''|''minute''|''second''|text=''text''}}&lt;br /&gt;
&lt;br /&gt;
Mandatory parameters are the following:&lt;br /&gt;
;''url'': URL of the website&lt;br /&gt;
;''year'', ''month'', ''day'': Snapshot date from web.archive.org of the website. Each value must be padded with zeroes to have 4-digit year, and 2-digits month and day.&lt;br /&gt;
;''hour'', ''minute'', ''second'': Snapshot time from web.archive.org of the website. Each value must be padded with zeroes to have 2-digits hour, minute and second.&lt;br /&gt;
&lt;br /&gt;
Optional parameter is:&lt;br /&gt;
;''text'':Text for the link. By default, same as URL.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|&lt;br /&gt;
 2017|01|22|21|32|33}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|2017|01|22|21|32|33}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|&lt;br /&gt;
 2017|01|22|21|32|33|&lt;br /&gt;
 text=Short information about the internal &amp;quot;MEMPTR&amp;quot; 16bit register of the Z80 and its influence on the F-Register}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|2017|01|22|21|32|33|text=Short information about the internal &amp;quot;MEMPTR&amp;quot; 16bit register of the Z80 and its influence on the F-Register}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:External link templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;[{{{1}}} {{{text|{{{1}}}}}}] &amp;lt;small&amp;gt; ([https://web.archive.org/web/{{{2}}}{{{3}}}{{{4}}}{{{5}}}{{{6}}}{{{7}}}/{{{1}}} Web archive {{{2}}}-{{{3}}}-{{{4}}} {{{5}}}:{{{6}}}:{{{7}}}])&amp;lt;/small&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Template:CpcPower&amp;diff=102589</id>
		<title>Template:CpcPower</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Template:CpcPower&amp;diff=102589"/>
				<updated>2018-12-30T11:04:45Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.cpc-power.com/index.php?page=detail&amp;amp;num={{{1}}} CPC-Power.com: {{{2}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template needs two parameters:&lt;br /&gt;
* File-ID of the game at CPC-Power.com (have a look at the URL)&lt;br /&gt;
* Link text&lt;br /&gt;
== Example ==&lt;br /&gt;
You can use it with:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{CpcPower|1234|Link text}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Z80_-_undocumented_opcodes&amp;diff=102588</id>
		<title>Z80 - undocumented opcodes</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Z80_-_undocumented_opcodes&amp;diff=102588"/>
				<updated>2018-12-30T11:01:54Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: /* Web links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Z80|Z80]] CPU contains several undocumented opcodes, which can be quite helpful sometimes. The most useful undocumented opcodes are probably these ones, which split up the 16bit index registers IX and IY in 8bit registers called IXL,IXH,IYL and IYH. &lt;br /&gt;
&lt;br /&gt;
Please note, that many Z80 successors like the Z180 are NOT able to execute some of the following opcodes properly. &lt;br /&gt;
&lt;br /&gt;
This is just an overview. Parts of this article have been copied from the [http://www.myquest.nl/z80undocumented/ &amp;quot;The Undocumented Z80 Documented&amp;quot;] originally by Sean Young and currently maintained by Jan Wilmans, which is one of the most comprehensive descriptions around. &lt;br /&gt;
&lt;br /&gt;
== CB prefix  ==&lt;br /&gt;
&lt;br /&gt;
Of the 247 opcodes that use the prefix &amp;amp;CB, the block &amp;amp;CB &amp;amp;30 to &amp;amp;CB &amp;amp;37 is undocumented officially. These commands shift the operand register left and set its lowest bit to 1.&lt;br /&gt;
&lt;br /&gt;
This is in contrast to SRL (Shift Right Logical), which shifts right and clears the highest bit. Some believe these opcodes were supposed to be Shift Left Logical but that the setting of the lowest bit represents a bug in the Z80, claiming this is why the opcodes are undocumented. Others call the opcodes SLIA, for Shift Left Inverted Arithmetic.&lt;br /&gt;
&lt;br /&gt;
Regardless of the story behind this operation, its effective result is ''register'' = (''register'' * 2) + 1, something that does have its uses and has been employed in various programming contexts for that reason.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;CB30 SLL B&lt;br /&gt;
CB31 SLL C&lt;br /&gt;
CB32 SLL D&lt;br /&gt;
CB33 SLL E&lt;br /&gt;
CB34 SLL H&lt;br /&gt;
CB35 SLL L&lt;br /&gt;
CB36 SLL (HL)&lt;br /&gt;
CB37 SLL A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DD and FD prefixes  ==&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;DD or &amp;amp;FD prefixes are documented as causing operations using the 16-bit register HL to instead work with either of the 16-bit indexing registers IX or IY; if the operations access a memory location (''i.e.'' normally LD A,(HL), ''etc.''), the opcodes must additionally include an extra byte that specifies a signed displacement (-128 to +127) from IX/IY.&lt;br /&gt;
&lt;br /&gt;
However, Zilog have not documented the fact that these prefixes also affect opcodes that usually refer to the 8-bit components of HL, ''i.e.'' H and L. Thus, one gains access to the additional registers IXH, IXL, IYH, and IYL, for almost all commands that normally use H or L. It is even possible to do things like LD IXH,IXL (although you cannot combine IX and IY in the same instruction, for obvious reasons). These registers can be useful in routines that must process and/or store a lot of numbers. Thankfully, they are not as slow as their 16-bit counterparts: whereas access to (IX+d) is usually slower by 3 NOPs than the equivalent operation upon (HL), using the 8-bit components is (like PUSH IX, ''etc.'') only 1 NOP slower, and this is only due to the need to parse the prefixing byte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DB #DD:LD H,A -&amp;amp;gt; LD IXH,A&lt;br /&gt;
DB #FD:LD B,L -&amp;amp;gt; LD B,IYL&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Note: These registers are called LX, LY, HX, and HY by [[WinAPE]]'s debugger, although its assembler uses the names given above.&lt;br /&gt;
&lt;br /&gt;
== ED prefix  ==&lt;br /&gt;
&lt;br /&gt;
There are a number of undocumented EDxx instructions, of which most are duplicates of documented instructions. Any instruction not listed has no effect (same behaviour as 2 NOP instructions). &lt;br /&gt;
&lt;br /&gt;
The complete list except for the block instructions: &lt;br /&gt;
&amp;lt;pre&amp;gt;ED40 IN B,(C)       ED60 IN H,(C)&lt;br /&gt;
ED41 OUT (C),B      ED61 OUT (C),H&lt;br /&gt;
ED42 SBC HL,BC      ED62 SBC HL,HL&lt;br /&gt;
ED43 LD (nn),BC     ED63 LD (nn),HL&lt;br /&gt;
ED44 NEG            ED64 NEG *&lt;br /&gt;
ED45 RETN           ED65 RETN *&lt;br /&gt;
ED46 IM 0           ED66 IM 0 *&lt;br /&gt;
ED47 LD I,A         ED67 RRD&lt;br /&gt;
ED48 IN C,(C)       ED68 IN L,(C)&lt;br /&gt;
ED49 OUT (C),C      ED69 OUT (C),L&lt;br /&gt;
ED4A ADC HL,BC      ED6A ADC HL,HL&lt;br /&gt;
ED4B LD BC,(nn)     ED6B LD HL,(nn)&lt;br /&gt;
ED4C NEG *          ED6C NEG *&lt;br /&gt;
ED4D RETI           ED6D RETN *&lt;br /&gt;
ED4E IM 0 *         ED6E IM 0 *&lt;br /&gt;
ED4F LD R,A         ED6F RLD&lt;br /&gt;
ED50 IN D,(C)       ED70 IN (C) / IN F,(C) *&lt;br /&gt;
ED51 OUT (C),D      ED71 OUT (C),0 *&lt;br /&gt;
ED52 SBC HL,DE      ED72 SBC HL,SP&lt;br /&gt;
ED53 LD (nn),DE     ED73 LD (nn),SP&lt;br /&gt;
ED54 NEG *          ED74 NEG *&lt;br /&gt;
ED55 RETN *         ED75 RETN *&lt;br /&gt;
ED56 IM 1           ED76 IM 1 *&lt;br /&gt;
ED57 LD A,I         ED77 NOP *&lt;br /&gt;
ED58 IN E,(C)       ED78 IN A,(C)&lt;br /&gt;
ED59 OUT (C),E      ED79 OUT (C),A&lt;br /&gt;
ED5A ADC HL,DE      ED7A ADC HL,SP&lt;br /&gt;
ED5B LD DE,(nn)     ED7B LD SP,(nn)&lt;br /&gt;
ED5C NEG *          ED7C NEG *&lt;br /&gt;
ED5D RETN *         ED7D RETN *&lt;br /&gt;
ED5E IM 2           ED7E IM 2 *&lt;br /&gt;
ED5F LD A,R         ED7F NOP *&lt;br /&gt;
* = undocumented opcodes&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== DDCB prefix  ==&lt;br /&gt;
&lt;br /&gt;
The undocumented DDCB instructions store the result (if any) of the operation in one of the seven all-purpose registers, which one depends on the lower 3 bits of the last byte of the opcode (not operand, so not the offset). &lt;br /&gt;
&amp;lt;pre&amp;gt;000 B&lt;br /&gt;
001 C&lt;br /&gt;
010 D&lt;br /&gt;
011 E&lt;br /&gt;
100 H&lt;br /&gt;
101 L&lt;br /&gt;
110 (none: documented opcode)&lt;br /&gt;
111 A&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
The documented DDCB0106 is RLC (IX+01h). So, clear the lower three bits (DDCB0100) and something is done to register B. The result of the RLC (which is stored in (IX+01h)) is now also stored in register B. Effectively, it does the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;LD B,(IX+01h)&lt;br /&gt;
RLC B&lt;br /&gt;
LD (IX+01h),B&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
So you get double value for money. The result is stored in B and (IX+01h). The most common notation is: RLC (IX+01h),B &lt;br /&gt;
&lt;br /&gt;
I’ve once seen this notation: &lt;br /&gt;
&amp;lt;pre&amp;gt;RLC (IX+01h)&lt;br /&gt;
LD B,(IX+01h)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
That’s not correct: B contains the rotated value, even if (IX+01h) points to ROM. The DDCB SET and RES instructions do the same thing as the shift/rotate instructions: &lt;br /&gt;
&amp;lt;pre&amp;gt;DDCB10C0    SET 0,(IX+10h),B&lt;br /&gt;
DDCB10C1    SET 0,(IX+10h),C&lt;br /&gt;
DDCB10C2    SET 0,(IX+10h),D&lt;br /&gt;
DDCB10C3    SET 0,(IX+10h),E&lt;br /&gt;
DDCB10C4    SET 0,(IX+10h),H&lt;br /&gt;
DDCB10C5    SET 0,(IX+10h),L&lt;br /&gt;
DDCB10C6    SET 0,(IX+10h) - documented instruction&lt;br /&gt;
DDCB10C7    SET 0,(IX+10h),A&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
So for example with the last instruction, the value of (IX+10h) with bit 0 set is also stored in register A. &lt;br /&gt;
&lt;br /&gt;
The DDCB BIT instructions do not store any value; they merely test a bit. That’s why the undocumented DDCB BIT instructions are no different from the official ones: &lt;br /&gt;
&amp;lt;pre&amp;gt;DDCB d 78   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 79   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 7A   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 7B   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 7C   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 7D   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 7E   BIT 7,(IX+d) - documented instruction&lt;br /&gt;
DDCB d 7F   BIT 7,(IX+d)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== FDCB prefix  ==&lt;br /&gt;
&lt;br /&gt;
Same as for the DDCB prefix, though IY is used instead of IX. &lt;br /&gt;
&lt;br /&gt;
== Web links  ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.myquest.nl/z80undocumented/z80-documented-v0.91.pdf &amp;quot;The Undocumented Z80 Documented&amp;quot; by Sean Young Version 0.91, 18th September, 2005] at [http://www.myquest.nl/z80undocumented/ Jan Wilmans' Website] &lt;br /&gt;
* {{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|2017|01|22|21|32|33|text=Short information about the internal &amp;quot;MEMPTR&amp;quot; 16bit register of the Z80 and its influence on the F-Register}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Template:BrokenLink&amp;diff=102587</id>
		<title>Template:BrokenLink</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Template:BrokenLink&amp;diff=102587"/>
				<updated>2018-12-30T11:00:28Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
This template is used to present an alternative link to an archive on web.archive.org of a web site that became unavailable.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;BrokenLink|''url''|''year''|''month''|''day''|''hour''|''minute''|''second''|text=''text''}}&lt;br /&gt;
&lt;br /&gt;
Mandatory parameters are the following:&lt;br /&gt;
;''url'': URL of the website&lt;br /&gt;
;''year'', ''month'', ''day'': Snapshot date from web.archive.org of the website. Each value must be padded with zeroes to have 4-digit year, and 2-digits month and day.&lt;br /&gt;
;''hour'', ''minute'', ''second'': Snapshot time from web.archive.org of the website. Each value must be padded with zeroes to have 2-digits hour, minute and second.&lt;br /&gt;
&lt;br /&gt;
Optional parameter is:&lt;br /&gt;
;''text'':Text for the link. By default, same as URL.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|&lt;br /&gt;
 2017|01|22|21|32|33}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|2017|01|22|21|32|33}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|&lt;br /&gt;
 2017|01|22|21|32|33|&lt;br /&gt;
 text=Short information about the internal &amp;quot;MEMPTR&amp;quot; 16bit register of the Z80 and its influence on the F-Register}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|2017|01|22|21|32|33|text=Short information about the internal &amp;quot;MEMPTR&amp;quot; 16bit register of the Z80 and its influence on the F-Register}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;[{{{1}}} {{{text|{{{1}}}}}}] &amp;lt;small&amp;gt; ([https://web.archive.org/web/{{{2}}}{{{3}}}{{{4}}}{{{5}}}{{{6}}}{{{7}}}/{{{1}}} Web archive {{{2}}}-{{{3}}}-{{{4}}} {{{5}}}:{{{6}}}:{{{7}}}])&amp;lt;/small&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Z80_-_undocumented_opcodes&amp;diff=102586</id>
		<title>Z80 - undocumented opcodes</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Z80_-_undocumented_opcodes&amp;diff=102586"/>
				<updated>2018-12-30T10:59:59Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: /* Web links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Z80|Z80]] CPU contains several undocumented opcodes, which can be quite helpful sometimes. The most useful undocumented opcodes are probably these ones, which split up the 16bit index registers IX and IY in 8bit registers called IXL,IXH,IYL and IYH. &lt;br /&gt;
&lt;br /&gt;
Please note, that many Z80 successors like the Z180 are NOT able to execute some of the following opcodes properly. &lt;br /&gt;
&lt;br /&gt;
This is just an overview. Parts of this article have been copied from the [http://www.myquest.nl/z80undocumented/ &amp;quot;The Undocumented Z80 Documented&amp;quot;] originally by Sean Young and currently maintained by Jan Wilmans, which is one of the most comprehensive descriptions around. &lt;br /&gt;
&lt;br /&gt;
== CB prefix  ==&lt;br /&gt;
&lt;br /&gt;
Of the 247 opcodes that use the prefix &amp;amp;CB, the block &amp;amp;CB &amp;amp;30 to &amp;amp;CB &amp;amp;37 is undocumented officially. These commands shift the operand register left and set its lowest bit to 1.&lt;br /&gt;
&lt;br /&gt;
This is in contrast to SRL (Shift Right Logical), which shifts right and clears the highest bit. Some believe these opcodes were supposed to be Shift Left Logical but that the setting of the lowest bit represents a bug in the Z80, claiming this is why the opcodes are undocumented. Others call the opcodes SLIA, for Shift Left Inverted Arithmetic.&lt;br /&gt;
&lt;br /&gt;
Regardless of the story behind this operation, its effective result is ''register'' = (''register'' * 2) + 1, something that does have its uses and has been employed in various programming contexts for that reason.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;CB30 SLL B&lt;br /&gt;
CB31 SLL C&lt;br /&gt;
CB32 SLL D&lt;br /&gt;
CB33 SLL E&lt;br /&gt;
CB34 SLL H&lt;br /&gt;
CB35 SLL L&lt;br /&gt;
CB36 SLL (HL)&lt;br /&gt;
CB37 SLL A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DD and FD prefixes  ==&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;DD or &amp;amp;FD prefixes are documented as causing operations using the 16-bit register HL to instead work with either of the 16-bit indexing registers IX or IY; if the operations access a memory location (''i.e.'' normally LD A,(HL), ''etc.''), the opcodes must additionally include an extra byte that specifies a signed displacement (-128 to +127) from IX/IY.&lt;br /&gt;
&lt;br /&gt;
However, Zilog have not documented the fact that these prefixes also affect opcodes that usually refer to the 8-bit components of HL, ''i.e.'' H and L. Thus, one gains access to the additional registers IXH, IXL, IYH, and IYL, for almost all commands that normally use H or L. It is even possible to do things like LD IXH,IXL (although you cannot combine IX and IY in the same instruction, for obvious reasons). These registers can be useful in routines that must process and/or store a lot of numbers. Thankfully, they are not as slow as their 16-bit counterparts: whereas access to (IX+d) is usually slower by 3 NOPs than the equivalent operation upon (HL), using the 8-bit components is (like PUSH IX, ''etc.'') only 1 NOP slower, and this is only due to the need to parse the prefixing byte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DB #DD:LD H,A -&amp;amp;gt; LD IXH,A&lt;br /&gt;
DB #FD:LD B,L -&amp;amp;gt; LD B,IYL&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Note: These registers are called LX, LY, HX, and HY by [[WinAPE]]'s debugger, although its assembler uses the names given above.&lt;br /&gt;
&lt;br /&gt;
== ED prefix  ==&lt;br /&gt;
&lt;br /&gt;
There are a number of undocumented EDxx instructions, of which most are duplicates of documented instructions. Any instruction not listed has no effect (same behaviour as 2 NOP instructions). &lt;br /&gt;
&lt;br /&gt;
The complete list except for the block instructions: &lt;br /&gt;
&amp;lt;pre&amp;gt;ED40 IN B,(C)       ED60 IN H,(C)&lt;br /&gt;
ED41 OUT (C),B      ED61 OUT (C),H&lt;br /&gt;
ED42 SBC HL,BC      ED62 SBC HL,HL&lt;br /&gt;
ED43 LD (nn),BC     ED63 LD (nn),HL&lt;br /&gt;
ED44 NEG            ED64 NEG *&lt;br /&gt;
ED45 RETN           ED65 RETN *&lt;br /&gt;
ED46 IM 0           ED66 IM 0 *&lt;br /&gt;
ED47 LD I,A         ED67 RRD&lt;br /&gt;
ED48 IN C,(C)       ED68 IN L,(C)&lt;br /&gt;
ED49 OUT (C),C      ED69 OUT (C),L&lt;br /&gt;
ED4A ADC HL,BC      ED6A ADC HL,HL&lt;br /&gt;
ED4B LD BC,(nn)     ED6B LD HL,(nn)&lt;br /&gt;
ED4C NEG *          ED6C NEG *&lt;br /&gt;
ED4D RETI           ED6D RETN *&lt;br /&gt;
ED4E IM 0 *         ED6E IM 0 *&lt;br /&gt;
ED4F LD R,A         ED6F RLD&lt;br /&gt;
ED50 IN D,(C)       ED70 IN (C) / IN F,(C) *&lt;br /&gt;
ED51 OUT (C),D      ED71 OUT (C),0 *&lt;br /&gt;
ED52 SBC HL,DE      ED72 SBC HL,SP&lt;br /&gt;
ED53 LD (nn),DE     ED73 LD (nn),SP&lt;br /&gt;
ED54 NEG *          ED74 NEG *&lt;br /&gt;
ED55 RETN *         ED75 RETN *&lt;br /&gt;
ED56 IM 1           ED76 IM 1 *&lt;br /&gt;
ED57 LD A,I         ED77 NOP *&lt;br /&gt;
ED58 IN E,(C)       ED78 IN A,(C)&lt;br /&gt;
ED59 OUT (C),E      ED79 OUT (C),A&lt;br /&gt;
ED5A ADC HL,DE      ED7A ADC HL,SP&lt;br /&gt;
ED5B LD DE,(nn)     ED7B LD SP,(nn)&lt;br /&gt;
ED5C NEG *          ED7C NEG *&lt;br /&gt;
ED5D RETN *         ED7D RETN *&lt;br /&gt;
ED5E IM 2           ED7E IM 2 *&lt;br /&gt;
ED5F LD A,R         ED7F NOP *&lt;br /&gt;
* = undocumented opcodes&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== DDCB prefix  ==&lt;br /&gt;
&lt;br /&gt;
The undocumented DDCB instructions store the result (if any) of the operation in one of the seven all-purpose registers, which one depends on the lower 3 bits of the last byte of the opcode (not operand, so not the offset). &lt;br /&gt;
&amp;lt;pre&amp;gt;000 B&lt;br /&gt;
001 C&lt;br /&gt;
010 D&lt;br /&gt;
011 E&lt;br /&gt;
100 H&lt;br /&gt;
101 L&lt;br /&gt;
110 (none: documented opcode)&lt;br /&gt;
111 A&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
The documented DDCB0106 is RLC (IX+01h). So, clear the lower three bits (DDCB0100) and something is done to register B. The result of the RLC (which is stored in (IX+01h)) is now also stored in register B. Effectively, it does the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;LD B,(IX+01h)&lt;br /&gt;
RLC B&lt;br /&gt;
LD (IX+01h),B&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
So you get double value for money. The result is stored in B and (IX+01h). The most common notation is: RLC (IX+01h),B &lt;br /&gt;
&lt;br /&gt;
I’ve once seen this notation: &lt;br /&gt;
&amp;lt;pre&amp;gt;RLC (IX+01h)&lt;br /&gt;
LD B,(IX+01h)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
That’s not correct: B contains the rotated value, even if (IX+01h) points to ROM. The DDCB SET and RES instructions do the same thing as the shift/rotate instructions: &lt;br /&gt;
&amp;lt;pre&amp;gt;DDCB10C0    SET 0,(IX+10h),B&lt;br /&gt;
DDCB10C1    SET 0,(IX+10h),C&lt;br /&gt;
DDCB10C2    SET 0,(IX+10h),D&lt;br /&gt;
DDCB10C3    SET 0,(IX+10h),E&lt;br /&gt;
DDCB10C4    SET 0,(IX+10h),H&lt;br /&gt;
DDCB10C5    SET 0,(IX+10h),L&lt;br /&gt;
DDCB10C6    SET 0,(IX+10h) - documented instruction&lt;br /&gt;
DDCB10C7    SET 0,(IX+10h),A&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
So for example with the last instruction, the value of (IX+10h) with bit 0 set is also stored in register A. &lt;br /&gt;
&lt;br /&gt;
The DDCB BIT instructions do not store any value; they merely test a bit. That’s why the undocumented DDCB BIT instructions are no different from the official ones: &lt;br /&gt;
&amp;lt;pre&amp;gt;DDCB d 78   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 79   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 7A   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 7B   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 7C   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 7D   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 7E   BIT 7,(IX+d) - documented instruction&lt;br /&gt;
DDCB d 7F   BIT 7,(IX+d)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== FDCB prefix  ==&lt;br /&gt;
&lt;br /&gt;
Same as for the DDCB prefix, though IY is used instead of IX. &lt;br /&gt;
&lt;br /&gt;
== Web links  ==&lt;br /&gt;
&lt;br /&gt;
*[http://www.myquest.nl/z80undocumented/z80-documented-v0.91.pdf &amp;quot;The Undocumented Z80 Documented&amp;quot; by Sean Young Version 0.91, 18th September, 2005] at [http://www.myquest.nl/z80undocumented/ Jan Wilmans' Website] &lt;br /&gt;
*{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|2017|01|22|21|32|33|text=Short information about the internal &amp;quot;MEMPTR&amp;quot; 16bit register of the Z80 and its influence on the F-Register}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Template:BrokenLink&amp;diff=102585</id>
		<title>Template:BrokenLink</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Template:BrokenLink&amp;diff=102585"/>
				<updated>2018-12-30T10:59:25Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
This template is used to present an alternative link to an archive on web.archive.org of a web site that became unavailable.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;BrokenLink|''url''|''year''|''month''|''day''|''hour''|''minute''|''second''|text=''text''}}&lt;br /&gt;
&lt;br /&gt;
Mandatory parameters are the following:&lt;br /&gt;
;''url'': URL of the website&lt;br /&gt;
;''year'', ''month'', ''day'': Snapshot date from web.archive.org of the website. Each value must be padded with zeroes to have 4-digit year, and 2-digits month and day.&lt;br /&gt;
;''hour'', ''minute'', ''second'': Snapshot time from web.archive.org of the website. Each value must be padded with zeroes to have 2-digits hour, minute and second.&lt;br /&gt;
&lt;br /&gt;
Optional parameter is:&lt;br /&gt;
;''text'':Text for the link. By default, same as URL.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|&lt;br /&gt;
 2017|01|22|21|32|33}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|2017|01|22|21|32|33}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|&lt;br /&gt;
 2017|01|22|21|32|33|&lt;br /&gt;
 text=Short information about the internal &amp;quot;MEMPTR&amp;quot; 16bit register of the Z80 and its influence on the F-Register}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|2017|01|22|21|32|33|text=Short information about the internal &amp;quot;MEMPTR&amp;quot; 16bit register of the Z80 and its influence on the F-Register}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[{{{1}}} {{{text|{{{1}}}}}}] &amp;lt;small&amp;gt; ([https://web.archive.org/web/{{{2}}}{{{3}}}{{{4}}}{{{5}}}{{{6}}}{{{7}}}/{{{1}}} Web archive {{{2}}}-{{{3}}}-{{{4}}} {{{5}}}:{{{6}}}:{{{7}}}])&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Template:BrokenLink&amp;diff=102584</id>
		<title>Template:BrokenLink</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Template:BrokenLink&amp;diff=102584"/>
				<updated>2018-12-30T10:58:08Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
This template is used to present an alternative link to an archive on web.archive.org of a web site that became unavailable.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;BrokenLink|''url''|''year''|''month''|''day''|''hour''|''minute''|''second''|text=''text''}}&lt;br /&gt;
&lt;br /&gt;
Mandatory parameters are the following:&lt;br /&gt;
;''url'': URL of the website&lt;br /&gt;
;''year'', ''month'', ''day'': Snapshot date from web.archive.org of the website. Each value must be padded with zeroes to have 4-digit year, and 2-digits month and day.&lt;br /&gt;
;''hour'', ''minute'', ''second'': Snapshot time from web.archive.org of the website. Each value must be padded with zeroes to have 2-digits hour, minute and second.&lt;br /&gt;
&lt;br /&gt;
Optional parameter is:&lt;br /&gt;
;''text'':Text for the link. By default, same as URL.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|&lt;br /&gt;
 2017|01|22|21|32|33}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|2017|01|22|21|32|33}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|&lt;br /&gt;
 2017|01|22|21|32|33|&lt;br /&gt;
 text=Short information about the internal &amp;quot;MEMPTR&amp;quot; 16bit register of the Z80 and its influence on the F-Register}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|2017|01|22|21|32|33|text=Short information about the internal &amp;quot;MEMPTR&amp;quot; 16bit register of the Z80 and its influence on the F-Register}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[{{{1}}} {{{text|{{{1}}}}}}] &amp;lt;small&amp;gt;([https://web.archive.org/web/{{{2}}}{{{3}}}{{{4}}}{{{5}}}{{{6}}}{{{7}}}/{{{1}}} Web archive {{{2}}}-{{{3}}}-{{{4}}} {{{5}}}:{{{6}}}:{{{7}}}])&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Template:BrokenLink&amp;diff=102583</id>
		<title>Template:BrokenLink</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Template:BrokenLink&amp;diff=102583"/>
				<updated>2018-12-30T10:57:46Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
This template is used to present an alternative link to an archive on web.archive.org of a web site that became unavailable.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;BrokenLink|''url''|''year''|''month''|''day''|''hour''|''minute''|''second''|text=''text''}}&lt;br /&gt;
&lt;br /&gt;
Mandatory parameters are the following:&lt;br /&gt;
;''url'': URL of the website&lt;br /&gt;
;''year'', ''month'', ''day'': Snapshot date from web.archive.org of the website. Each value must be padded with zeroes to have 4-digit year, and 2-digits month and day.&lt;br /&gt;
;''hour'', ''minute'', ''second'': Snapshot time from web.archive.org of the website. Each value must be padded with zeroes to have 2-digits hour, minute and second.&lt;br /&gt;
&lt;br /&gt;
Optional parameter is:&lt;br /&gt;
;''text'':Text for the link. By default, same as URL.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|&lt;br /&gt;
 2017|01|22|21|32|33}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|2017|01|22|21|32|33}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|&lt;br /&gt;
 2017|01|22|21|32|33|&lt;br /&gt;
 text=Short information about the internal &amp;quot;MEMPTR&amp;quot; 16bit register of the Z80 and its influence on the F-Register}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|2017|01|22|21|32|33|text=Short information about the internal &amp;quot;MEMPTR&amp;quot; 16bit register of the Z80 and its influence on the F-Register}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[{{{1}}} {{{text|{{{1}}}}}}] ([https://web.archive.org/web/{{{2}}}{{{3}}}{{{4}}}{{{5}}}{{{6}}}{{{7}}}/{{{1}}} Web archive {{{2}}}-{{{3}}}-{{{4}}} {{{5}}}:{{{6}}}:{{{7}}}])&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Template:BrokenLink&amp;diff=102582</id>
		<title>Template:BrokenLink</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Template:BrokenLink&amp;diff=102582"/>
				<updated>2018-12-30T10:57:21Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
This template is used to present an alternative link to an archive on web.archive.org of a web site that became unavailable.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;BrokenLink|''url''|''year''|''month''|''day''|''hour''|''minute''|''second''|text=''text''}}&lt;br /&gt;
&lt;br /&gt;
Mandatory parameters are the following:&lt;br /&gt;
;''url'': URL of the website&lt;br /&gt;
;''year'', ''month'', ''day'': Snapshot date from web.archive.org of the website. Each value must be padded with zeroes to have 4-digit year, and 2-digits month and day.&lt;br /&gt;
;''hour'', ''minute'', ''second'': Snapshot time from web.archive.org of the website. Each value must be padded with zeroes to have 2-digits hour, minute and second.&lt;br /&gt;
&lt;br /&gt;
Optional parameter is:&lt;br /&gt;
;''text'':Text for the link. By default, same as URL.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|&lt;br /&gt;
 2017|01|22|21|32|33}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|2017|01|22|21|32|33}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|&lt;br /&gt;
 2017|01|22|21|32|33|&lt;br /&gt;
 text=Short information about the internal &amp;quot;MEMPTR&amp;quot; 16bit register of the Z80 and its influence on the F-Register}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|2017|01|22|21|32|33|text=Short information about the internal &amp;quot;MEMPTR&amp;quot; 16bit register of the Z80 and its influence on the F-Register}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[{{{1}}} {{{text|{{{1}}}}}}] / [https://web.archive.org/web/{{{2}}}{{{3}}}{{{4}}}{{{5}}}{{{6}}}{{{7}}}/{{{1}}} Web archive {{{2}}}-{{{3}}}-{{{4}}} {{{5}}}:{{{6}}}:{{{7}}}]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Template:BrokenLink&amp;diff=102581</id>
		<title>Template:BrokenLink</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Template:BrokenLink&amp;diff=102581"/>
				<updated>2018-12-30T10:54:47Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
This template is used to present an alternative link to an archive on web.archive.org of a web site that became unavailable.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;BrokenLink|''url''|''year''|''month''|''day''|''hour''|''minute''|''second''}}&lt;br /&gt;
&lt;br /&gt;
Parameters are the following:&lt;br /&gt;
;''url'': URL of the website&lt;br /&gt;
;''year'', ''month'', ''day'': Snapshot date from web.archive.org of the website. Each value must be padded with zeroes to have 4-digit year, and 2-digits month and day.&lt;br /&gt;
;''hour'', ''minute'', ''second'': Snapshot time from web.archive.org of the website. Each value must be padded with zeroes to have 2-digits hour, minute and second.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|&lt;br /&gt;
 2017|01|22|21|32|33}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|2017|01|22|21|32|33}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[{{{1}}} {{{text|{{{1}}}}}}] / [https://web.archive.org/web/{{{2}}}{{{3}}}{{{4}}}{{{5}}}{{{6}}}{{{7}}}/{{{1}}} Web archive {{{2}}}-{{{3}}}-{{{4}}} {{{5}}}:{{{6}}}:{{{7}}}]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Template:BrokenLink&amp;diff=102580</id>
		<title>Template:BrokenLink</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Template:BrokenLink&amp;diff=102580"/>
				<updated>2018-12-30T10:53:46Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: New Template for alternative link to web.archive.org when a website is not available&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
This template is used to present an alternative link to an archive on web.archive.org of a web site that became unavailable.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;BrokenLink|''url''|''year''|''month''|''day''|''hour''|''minute''|''second''}}&lt;br /&gt;
&lt;br /&gt;
Parameters are the following:&lt;br /&gt;
;''url'': URL of the website&lt;br /&gt;
;''year'', ''month'', ''day'': Snapshot date from web.archive.org of the website. Each value must be padded with zeroes to have 4-digit year, and 2-digits month and day.&lt;br /&gt;
;''hour'', ''minute'', ''second'': Snapshot time from web.archive.org of the website. Each value must be padded with zeroes to have 2-digits hour, minute and second.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|&lt;br /&gt;
 2017|01|22|21|32|33}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{BrokenLink|http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt|2017|01|22|21|32|33}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[{{{1}}} {{{text|{{{1}}}}}}]&lt;br /&gt;
- Resource no more available, archived here: [https://web.archive.org/web/{{{2}}}{{{3}}}{{{4}}}{{{5}}}{{{6}}}{{{7}}}/{{{1}}} Web archive {{{2}}}-{{{3}}}-{{{4}}} {{{5}}}:{{{6}}}:{{{7}}}]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Some_features_of_the_Z80&amp;diff=102573</id>
		<title>Some features of the Z80</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Some_features_of_the_Z80&amp;diff=102573"/>
				<updated>2018-12-29T21:45:41Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: /* IFF0 and IFF1 */ --&amp;gt; IFF1 and IFF2 are official names found in all Zilog Z80 datasheets&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;border: 1px solid rgb(228, 222, 222); margin: 0px 0px 5px; padding: 0.5em 1em; background-color: rgb(249, 249, 249);&amp;quot;&amp;gt;&amp;lt;center&amp;gt;'''''This article originally came from Kevin Thackers' archive at [http://www.cpctech.org.uk http://www.cpctech.org.uk].'''''&amp;lt;/center&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Flags/Status Register (F and F')==&lt;br /&gt;
&lt;br /&gt;
This register contains the condition flags. When a command is executed the flags are used to show information about the result. (e.g. the flags may be used to check if the result was positive, negative or zero). &lt;br /&gt;
&lt;br /&gt;
The flags register has this form: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Bit 7&lt;br /&gt;
| Sign flag&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 6&lt;br /&gt;
| Zero flag&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 5&lt;br /&gt;
| (note 1)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 4&lt;br /&gt;
| Half-carry flag&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 3&lt;br /&gt;
| (note 1)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 2&lt;br /&gt;
| Parity/Overflow flag&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 1&lt;br /&gt;
| Subtract flag&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 0&lt;br /&gt;
| Carry flag&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
Note: &lt;br /&gt;
&lt;br /&gt;
There are two bits in the flags register which are documented by Zilog as being unused. But in fact these bits do change: these bits are updated according to an undocumented register of the Z80 named either WZ or MEMPTR. This undocumented register is used to store temporary results such as 16-bits arithmetic results, and address (for example, loading I register and the vector byte for interruption mode 2 to compute the value to load in PC register).&lt;br /&gt;
&lt;br /&gt;
== Sign flag ==&lt;br /&gt;
This flag indicates if the result is positive or negative. If a result is negative, this flag is set to 1, if the result is positive, this flag is set to 0. &lt;br /&gt;
&lt;br /&gt;
== Zero flag ==&lt;br /&gt;
This flag indicates if the result is zero or non-zero. If the result was zero, this flag would be set to 1, if the result was non-zero (i.e. a number other than zero), this flag would be set to 0. &lt;br /&gt;
&lt;br /&gt;
== Parity/Overflow ==&lt;br /&gt;
This bit has two functions. In some commands it is used to show parity and other commands it is used to show overflow. &lt;br /&gt;
&lt;br /&gt;
Parity: &lt;br /&gt;
&lt;br /&gt;
If a byte has an even number of 1 digits then it has &amp;quot;even parity&amp;quot;, and if the byte has an odd number of 1 digits then it has &amp;quot;odd parity&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
The Parity Overflow is set to 1 when the byte has even parity, and set to 0 if the byte has odd parity. &lt;br /&gt;
&lt;br /&gt;
Overflow: &lt;br /&gt;
&lt;br /&gt;
This bit will hold the overflow after a arithmetic command. &lt;br /&gt;
&lt;br /&gt;
== Subtract ==&lt;br /&gt;
This flag is set to 1 if the command used subtraction, it is set to 0 if the command used addition. This flag is used in the execution of the DAA instruction to calculate the correct BCD representation of the contents of A. &lt;br /&gt;
&lt;br /&gt;
== Half-Carry flag ==&lt;br /&gt;
This flag holds the carry from bit 3 to bit 4. It is used by the DAA instruction to convert the contents of the A register to BCD form. &lt;br /&gt;
&lt;br /&gt;
== Carry flag ==&lt;br /&gt;
This flag holds the carry. &lt;br /&gt;
&lt;br /&gt;
'''Refresh Register (R)'''&lt;br /&gt;
&lt;br /&gt;
This register is special and it cannot be used to store data. Some people consider it to be random, but it is not, and you can easily predict it's value. However, by the way it works, it could be used as a simple but crude random number generator. &lt;br /&gt;
&lt;br /&gt;
This register is used mainly in protections, because when an instruction is added or removed the value of R will be different to the intended value and the data will not be deprotected correctly. &lt;br /&gt;
&lt;br /&gt;
Bit 7 remains unchanged, and it's value is only defined when a LD R,A instruction is executed. The lower 7 bits hold a count which is incremented after each z80 instruction executed. &lt;br /&gt;
&lt;br /&gt;
Generally, all commands which have a &amp;amp;CB, &amp;amp;ED, &amp;amp;DD or &amp;amp;FD prefix, increment R by 2, and all other commands increment R by 1. The execeptions to this rule are commands which repeat. &lt;br /&gt;
&lt;br /&gt;
'''Interrupt Modes'''&lt;br /&gt;
&lt;br /&gt;
The interrupt mode can be defined using the &amp;quot;IM&amp;quot; instruction. There are 3 interrupt modes: mode 0, mode 1 and mode 2. &lt;br /&gt;
&lt;br /&gt;
The descriptions below assume: &lt;br /&gt;
&lt;br /&gt;
* Interrupt requests are accepted by Z80, &lt;br /&gt;
* An interrupt request has been issued &lt;br /&gt;
&lt;br /&gt;
== Mode 0 ==&lt;br /&gt;
In this mode, the interrupting device will generate an interrupt and put a single-byte instruction onto the CPU bus. The Z80 will execute this instruction, and then continue with program execution. Since we can only put a single byte onto the bus, the RST instructions provide an excellent way of handling different interrupts. &lt;br /&gt;
&lt;br /&gt;
On a standard CPC the byte on the cpu data bus is normally &amp;amp;FF (but this is not guaranteed). &amp;amp;FF corresponds to the &amp;quot;RST 38H&amp;quot; instruction, and therefore on the CPC interrupt mode 0 is the same as interrupt mode 1. &lt;br /&gt;
&lt;br /&gt;
On the Plus, the ASIC will generate a byte to put onto the processor data bus, see the documentation on the ASIC for a description of this byte. &lt;br /&gt;
&lt;br /&gt;
== Mode 1 ==&lt;br /&gt;
In this mode the following will be done when a interrupt is &amp;quot;executed&amp;quot;: &lt;br /&gt;
&lt;br /&gt;
* The current program counter (PC) is pushed onto the stack. (SP) &lt;br /&gt;
* The program counter address is set to &amp;amp;0038. &lt;br /&gt;
&lt;br /&gt;
== Mode 2 ==&lt;br /&gt;
In this mode the following will be done when a interrupt is &amp;quot;executed&amp;quot;: &lt;br /&gt;
&lt;br /&gt;
* The current program counter (PC) is pushed onto the stack (SP), &lt;br /&gt;
* A address is formed using the I register and the data on the bus. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| Bit 15..8&lt;br /&gt;
| from I register&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 7..0&lt;br /&gt;
| Byte put onto processor bus by interrupting device&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* The Z80 will read the interrupt handler address from the location pointed to by the interrupt handler pointer, and then jump to that address. interrupt handler pointer: &lt;br /&gt;
&lt;br /&gt;
On a standard CPC, the byte put onto the processor bus is always &amp;amp;FF. So, on a standard CPC the following will be done: &lt;br /&gt;
&lt;br /&gt;
* The current Program Counter is pushed onto the stack &lt;br /&gt;
* The z80 fetches an address from &amp;amp;xxFF and jumps to that address. (where xx is the value from the I register) &lt;br /&gt;
&lt;br /&gt;
On a Plus, the ASIC can generate a different byte to put on the processor bus. So the lower 8 bits may be different. This is part of the extended interrupt handling features to cope with DMA Sound interrupts, scan line interrupts etc.. &lt;br /&gt;
&lt;br /&gt;
'''The Interrupt Vector Register (I)'''&lt;br /&gt;
&lt;br /&gt;
The I register is used in Z80 Interrupt Mode 2 to form When it is used in this way, it forms the upper 8-bits of an address which points to the interrupt handler. The lower 8-bits are put onto the CPU bus by an interrupting device. If you program uses Mode 0 or Mode 1 interrupts, then this register can be used to store data. &lt;br /&gt;
&lt;br /&gt;
'''DAA (Decimal Adjust accumulator)'''&lt;br /&gt;
&lt;br /&gt;
This Z80 command will convert the contents of the A register to BCD (Binary-Coded-Decimal) representation. (e.g. the BCD representation of 15 is &amp;amp;15). DAA uses the carry flag, subtract flag, half-carry flag and the A register to calculate a value to add to the A register to change it into a BCD number. I believe that the original value in the A register must be in BCD for this conversion to work. It is provided so that any non-BCD value can be added to a BCD value and then the result can be adjusted to BCD again. I tried to convert from a non-BCD number to BCD using DAA and it didnt work. In the following tables, x corresponds to the upper nibble of register A (before the command has executed), and y corresponds to the lower nibble. These tables show the value that is added to the A register to convert it to BCD representation depending on the flags. These values are the ones used by my emulator (A-CPC). I have found information about other tables, but these did not produce the correct values. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Flags set                          Byte&lt;br /&gt;
                                 (0..9)(0..9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;--------------------------------------------&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (None)                          + &amp;amp;00&lt;br /&gt;
 Carry:                          + &amp;amp;60&lt;br /&gt;
 Subtract:                       + &amp;amp;00&lt;br /&gt;
 Subtract+Carry:                 + &amp;amp;A0&lt;br /&gt;
 Half-carry:                     + &amp;amp;06&lt;br /&gt;
 Half-carry+Carry:               + &amp;amp;66&lt;br /&gt;
 Half-carry+Subtract:            + &amp;amp;FA&lt;br /&gt;
 Half-carry+Subtract+Carry:      + &amp;amp;9A&lt;br /&gt;
&lt;br /&gt;
 Flags set                          Byte&lt;br /&gt;
                                 (0..9)(A..F)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;--------------------------------------------&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (None)                          + &amp;amp;06&lt;br /&gt;
 Carry:                          + &amp;amp;66&lt;br /&gt;
 Subtract:                       + &amp;amp;00&lt;br /&gt;
 Subtract+Carry:                 + &amp;amp;a0&lt;br /&gt;
 Half-carry:                     + &amp;amp;06&lt;br /&gt;
 Half-carry+Carry:               + &amp;amp;66&lt;br /&gt;
 Half-carry+Subtract:            + &amp;amp;fa&lt;br /&gt;
 Half-carry+Subtract+Carry:      + &amp;amp;9A&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Flags set                          Byte&lt;br /&gt;
                                 (A..F)(0..9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;--------------------------------------------&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (None)                          + &amp;amp;60&lt;br /&gt;
 Carry:                          + &amp;amp;60&lt;br /&gt;
 Subtract:                       + &amp;amp;00&lt;br /&gt;
 Subtract+Carry:                 + &amp;amp;A0&lt;br /&gt;
 Half-carry:                     + &amp;amp;66&lt;br /&gt;
 Half-carry+Carry:               + &amp;amp;66&lt;br /&gt;
 Half-carry+Subtract:            + &amp;amp;fa&lt;br /&gt;
 Half-carry+Subtract+Carry:      + &amp;amp;9A&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Flags set                          Byte&lt;br /&gt;
                                 (A..F)(A..F)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;--------------------------------------------&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (None)                          + &amp;amp;66&lt;br /&gt;
 Carry:                          + &amp;amp;66&lt;br /&gt;
 Subtract:                       + &amp;amp;00&lt;br /&gt;
 Subtract+Carry:                 + &amp;amp;a0&lt;br /&gt;
 Half-carry:                     + &amp;amp;66&lt;br /&gt;
 Half-carry+Carry:               + &amp;amp;66&lt;br /&gt;
 Half-carry+Subtract:            + &amp;amp;fa&lt;br /&gt;
 Half-carry+Subtract+Carry:      + &amp;amp;9A&lt;br /&gt;
&lt;br /&gt;
'''LDIR and LDDR'''&lt;br /&gt;
&lt;br /&gt;
This is a block copying function, it is used to transfer data from one part of memory to another fast. &lt;br /&gt;
&lt;br /&gt;
* HL must be pre-loaded with the start address &lt;br /&gt;
* DE must be pre-loaded with the destination address &lt;br /&gt;
* BC must be pre-loaded with the length of data &lt;br /&gt;
&lt;br /&gt;
== LDIR ==&lt;br /&gt;
LDIR operation: &lt;br /&gt;
&lt;br /&gt;
* read byte from memory address pointed to by HL and write it to the memory address pointed to by DE &lt;br /&gt;
* Increment HL by 1 &lt;br /&gt;
* Increment DE by 1 &lt;br /&gt;
* If BC=0 then increment PC by 2 (otherwise dont increment it) &lt;br /&gt;
&lt;br /&gt;
== LDDR ==&lt;br /&gt;
LDDR operation: &lt;br /&gt;
&lt;br /&gt;
* read byte from memory address pointed to by HL and write it to the memory address pointed to by DE &lt;br /&gt;
* Decrement HL by 1 &lt;br /&gt;
* Decrement DE by 1 &lt;br /&gt;
* Increment Program counter by 2 &lt;br /&gt;
* If BC=0 then increment PC by 2 (otherwise dont increment it) &lt;br /&gt;
&lt;br /&gt;
== NOTES ==&lt;br /&gt;
* an interrupt can occur while a LDIR/LDDR is being executed. &lt;br /&gt;
&lt;br /&gt;
* If the LDIR/LDDR opcode is overwritten by itself then command execution will stop. Effectively, the LDIR opcode is repeatidly fetched and decoded for each byte fetched from memory. &lt;br /&gt;
&lt;br /&gt;
== IFF1 and IFF2 ==&lt;br /&gt;
IFF1 reflects the state of the maskable interrupt. The maskable interrupt can be enabled using the Z80 instruction &amp;quot;EI&amp;quot; and disabled using the Z80 instruction &amp;quot;DI&amp;quot;. When IFF1 is &amp;quot;1&amp;quot; masked interrupts are enabled, when a interrupt request is received by the Z80 it will be acknowledged and the interrupt handler executed. When IFF1 is &amp;quot;0&amp;quot; masked interrupts are disabled, any interrupt requests are ignored. &lt;br /&gt;
&lt;br /&gt;
When a non-maskable interrupt (NMI) is executed by the Z80, IFF2 is set to the value of IFF1. Then IFF1 is set to &amp;quot;0&amp;quot; to disable maskable interrupts. The NMI handler will be executed. When a &amp;quot;RETN&amp;quot; instruction is executed by the Z80, IFF1 is set to the value in IFF2, therefore the maskable interrupt state is restored. The state of IFF1 can be set at any time using the &amp;quot;DI&amp;quot; and &amp;quot;EI&amp;quot; instructions.&lt;br /&gt;
&lt;br /&gt;
== IM 0, IM 1, IM 2 ==&lt;br /&gt;
* The instructions &amp;quot;IM 0 &amp;quot;,&amp;quot;IM 1&amp;quot; and &amp;quot;IM 2&amp;quot; set the Z80 interrupt mode which defines the actions taken to execute the maskable interrupt handler.&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Some_features_of_the_Z80&amp;diff=102572</id>
		<title>Some features of the Z80</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Some_features_of_the_Z80&amp;diff=102572"/>
				<updated>2018-12-29T20:29:43Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: /* Flags/Status Register (F and F') */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;border: 1px solid rgb(228, 222, 222); margin: 0px 0px 5px; padding: 0.5em 1em; background-color: rgb(249, 249, 249);&amp;quot;&amp;gt;&amp;lt;center&amp;gt;'''''This article originally came from Kevin Thackers' archive at [http://www.cpctech.org.uk http://www.cpctech.org.uk].'''''&amp;lt;/center&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Flags/Status Register (F and F')==&lt;br /&gt;
&lt;br /&gt;
This register contains the condition flags. When a command is executed the flags are used to show information about the result. (e.g. the flags may be used to check if the result was positive, negative or zero). &lt;br /&gt;
&lt;br /&gt;
The flags register has this form: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Bit 7&lt;br /&gt;
| Sign flag&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 6&lt;br /&gt;
| Zero flag&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 5&lt;br /&gt;
| (note 1)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 4&lt;br /&gt;
| Half-carry flag&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 3&lt;br /&gt;
| (note 1)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 2&lt;br /&gt;
| Parity/Overflow flag&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 1&lt;br /&gt;
| Subtract flag&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 0&lt;br /&gt;
| Carry flag&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
Note: &lt;br /&gt;
&lt;br /&gt;
There are two bits in the flags register which are documented by Zilog as being unused. But in fact these bits do change: these bits are updated according to an undocumented register of the Z80 named either WZ or MEMPTR. This undocumented register is used to store temporary results such as 16-bits arithmetic results, and address (for example, loading I register and the vector byte for interruption mode 2 to compute the value to load in PC register).&lt;br /&gt;
&lt;br /&gt;
== Sign flag ==&lt;br /&gt;
This flag indicates if the result is positive or negative. If a result is negative, this flag is set to 1, if the result is positive, this flag is set to 0. &lt;br /&gt;
&lt;br /&gt;
== Zero flag ==&lt;br /&gt;
This flag indicates if the result is zero or non-zero. If the result was zero, this flag would be set to 1, if the result was non-zero (i.e. a number other than zero), this flag would be set to 0. &lt;br /&gt;
&lt;br /&gt;
== Parity/Overflow ==&lt;br /&gt;
This bit has two functions. In some commands it is used to show parity and other commands it is used to show overflow. &lt;br /&gt;
&lt;br /&gt;
Parity: &lt;br /&gt;
&lt;br /&gt;
If a byte has an even number of 1 digits then it has &amp;quot;even parity&amp;quot;, and if the byte has an odd number of 1 digits then it has &amp;quot;odd parity&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
The Parity Overflow is set to 1 when the byte has even parity, and set to 0 if the byte has odd parity. &lt;br /&gt;
&lt;br /&gt;
Overflow: &lt;br /&gt;
&lt;br /&gt;
This bit will hold the overflow after a arithmetic command. &lt;br /&gt;
&lt;br /&gt;
== Subtract ==&lt;br /&gt;
This flag is set to 1 if the command used subtraction, it is set to 0 if the command used addition. This flag is used in the execution of the DAA instruction to calculate the correct BCD representation of the contents of A. &lt;br /&gt;
&lt;br /&gt;
== Half-Carry flag ==&lt;br /&gt;
This flag holds the carry from bit 3 to bit 4. It is used by the DAA instruction to convert the contents of the A register to BCD form. &lt;br /&gt;
&lt;br /&gt;
== Carry flag ==&lt;br /&gt;
This flag holds the carry. &lt;br /&gt;
&lt;br /&gt;
'''Refresh Register (R)'''&lt;br /&gt;
&lt;br /&gt;
This register is special and it cannot be used to store data. Some people consider it to be random, but it is not, and you can easily predict it's value. However, by the way it works, it could be used as a simple but crude random number generator. &lt;br /&gt;
&lt;br /&gt;
This register is used mainly in protections, because when an instruction is added or removed the value of R will be different to the intended value and the data will not be deprotected correctly. &lt;br /&gt;
&lt;br /&gt;
Bit 7 remains unchanged, and it's value is only defined when a LD R,A instruction is executed. The lower 7 bits hold a count which is incremented after each z80 instruction executed. &lt;br /&gt;
&lt;br /&gt;
Generally, all commands which have a &amp;amp;CB, &amp;amp;ED, &amp;amp;DD or &amp;amp;FD prefix, increment R by 2, and all other commands increment R by 1. The execeptions to this rule are commands which repeat. &lt;br /&gt;
&lt;br /&gt;
'''Interrupt Modes'''&lt;br /&gt;
&lt;br /&gt;
The interrupt mode can be defined using the &amp;quot;IM&amp;quot; instruction. There are 3 interrupt modes: mode 0, mode 1 and mode 2. &lt;br /&gt;
&lt;br /&gt;
The descriptions below assume: &lt;br /&gt;
&lt;br /&gt;
* Interrupt requests are accepted by Z80, &lt;br /&gt;
* An interrupt request has been issued &lt;br /&gt;
&lt;br /&gt;
== Mode 0 ==&lt;br /&gt;
In this mode, the interrupting device will generate an interrupt and put a single-byte instruction onto the CPU bus. The Z80 will execute this instruction, and then continue with program execution. Since we can only put a single byte onto the bus, the RST instructions provide an excellent way of handling different interrupts. &lt;br /&gt;
&lt;br /&gt;
On a standard CPC the byte on the cpu data bus is normally &amp;amp;FF (but this is not guaranteed). &amp;amp;FF corresponds to the &amp;quot;RST 38H&amp;quot; instruction, and therefore on the CPC interrupt mode 0 is the same as interrupt mode 1. &lt;br /&gt;
&lt;br /&gt;
On the Plus, the ASIC will generate a byte to put onto the processor data bus, see the documentation on the ASIC for a description of this byte. &lt;br /&gt;
&lt;br /&gt;
== Mode 1 ==&lt;br /&gt;
In this mode the following will be done when a interrupt is &amp;quot;executed&amp;quot;: &lt;br /&gt;
&lt;br /&gt;
* The current program counter (PC) is pushed onto the stack. (SP) &lt;br /&gt;
* The program counter address is set to &amp;amp;0038. &lt;br /&gt;
&lt;br /&gt;
== Mode 2 ==&lt;br /&gt;
In this mode the following will be done when a interrupt is &amp;quot;executed&amp;quot;: &lt;br /&gt;
&lt;br /&gt;
* The current program counter (PC) is pushed onto the stack (SP), &lt;br /&gt;
* A address is formed using the I register and the data on the bus. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| Bit 15..8&lt;br /&gt;
| from I register&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 7..0&lt;br /&gt;
| Byte put onto processor bus by interrupting device&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* The Z80 will read the interrupt handler address from the location pointed to by the interrupt handler pointer, and then jump to that address. interrupt handler pointer: &lt;br /&gt;
&lt;br /&gt;
On a standard CPC, the byte put onto the processor bus is always &amp;amp;FF. So, on a standard CPC the following will be done: &lt;br /&gt;
&lt;br /&gt;
* The current Program Counter is pushed onto the stack &lt;br /&gt;
* The z80 fetches an address from &amp;amp;xxFF and jumps to that address. (where xx is the value from the I register) &lt;br /&gt;
&lt;br /&gt;
On a Plus, the ASIC can generate a different byte to put on the processor bus. So the lower 8 bits may be different. This is part of the extended interrupt handling features to cope with DMA Sound interrupts, scan line interrupts etc.. &lt;br /&gt;
&lt;br /&gt;
'''The Interrupt Vector Register (I)'''&lt;br /&gt;
&lt;br /&gt;
The I register is used in Z80 Interrupt Mode 2 to form When it is used in this way, it forms the upper 8-bits of an address which points to the interrupt handler. The lower 8-bits are put onto the CPU bus by an interrupting device. If you program uses Mode 0 or Mode 1 interrupts, then this register can be used to store data. &lt;br /&gt;
&lt;br /&gt;
'''DAA (Decimal Adjust accumulator)'''&lt;br /&gt;
&lt;br /&gt;
This Z80 command will convert the contents of the A register to BCD (Binary-Coded-Decimal) representation. (e.g. the BCD representation of 15 is &amp;amp;15). DAA uses the carry flag, subtract flag, half-carry flag and the A register to calculate a value to add to the A register to change it into a BCD number. I believe that the original value in the A register must be in BCD for this conversion to work. It is provided so that any non-BCD value can be added to a BCD value and then the result can be adjusted to BCD again. I tried to convert from a non-BCD number to BCD using DAA and it didnt work. In the following tables, x corresponds to the upper nibble of register A (before the command has executed), and y corresponds to the lower nibble. These tables show the value that is added to the A register to convert it to BCD representation depending on the flags. These values are the ones used by my emulator (A-CPC). I have found information about other tables, but these did not produce the correct values. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Flags set                          Byte&lt;br /&gt;
                                 (0..9)(0..9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;--------------------------------------------&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (None)                          + &amp;amp;00&lt;br /&gt;
 Carry:                          + &amp;amp;60&lt;br /&gt;
 Subtract:                       + &amp;amp;00&lt;br /&gt;
 Subtract+Carry:                 + &amp;amp;A0&lt;br /&gt;
 Half-carry:                     + &amp;amp;06&lt;br /&gt;
 Half-carry+Carry:               + &amp;amp;66&lt;br /&gt;
 Half-carry+Subtract:            + &amp;amp;FA&lt;br /&gt;
 Half-carry+Subtract+Carry:      + &amp;amp;9A&lt;br /&gt;
&lt;br /&gt;
 Flags set                          Byte&lt;br /&gt;
                                 (0..9)(A..F)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;--------------------------------------------&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (None)                          + &amp;amp;06&lt;br /&gt;
 Carry:                          + &amp;amp;66&lt;br /&gt;
 Subtract:                       + &amp;amp;00&lt;br /&gt;
 Subtract+Carry:                 + &amp;amp;a0&lt;br /&gt;
 Half-carry:                     + &amp;amp;06&lt;br /&gt;
 Half-carry+Carry:               + &amp;amp;66&lt;br /&gt;
 Half-carry+Subtract:            + &amp;amp;fa&lt;br /&gt;
 Half-carry+Subtract+Carry:      + &amp;amp;9A&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Flags set                          Byte&lt;br /&gt;
                                 (A..F)(0..9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;--------------------------------------------&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (None)                          + &amp;amp;60&lt;br /&gt;
 Carry:                          + &amp;amp;60&lt;br /&gt;
 Subtract:                       + &amp;amp;00&lt;br /&gt;
 Subtract+Carry:                 + &amp;amp;A0&lt;br /&gt;
 Half-carry:                     + &amp;amp;66&lt;br /&gt;
 Half-carry+Carry:               + &amp;amp;66&lt;br /&gt;
 Half-carry+Subtract:            + &amp;amp;fa&lt;br /&gt;
 Half-carry+Subtract+Carry:      + &amp;amp;9A&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Flags set                          Byte&lt;br /&gt;
                                 (A..F)(A..F)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;--------------------------------------------&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (None)                          + &amp;amp;66&lt;br /&gt;
 Carry:                          + &amp;amp;66&lt;br /&gt;
 Subtract:                       + &amp;amp;00&lt;br /&gt;
 Subtract+Carry:                 + &amp;amp;a0&lt;br /&gt;
 Half-carry:                     + &amp;amp;66&lt;br /&gt;
 Half-carry+Carry:               + &amp;amp;66&lt;br /&gt;
 Half-carry+Subtract:            + &amp;amp;fa&lt;br /&gt;
 Half-carry+Subtract+Carry:      + &amp;amp;9A&lt;br /&gt;
&lt;br /&gt;
'''LDIR and LDDR'''&lt;br /&gt;
&lt;br /&gt;
This is a block copying function, it is used to transfer data from one part of memory to another fast. &lt;br /&gt;
&lt;br /&gt;
* HL must be pre-loaded with the start address &lt;br /&gt;
* DE must be pre-loaded with the destination address &lt;br /&gt;
* BC must be pre-loaded with the length of data &lt;br /&gt;
&lt;br /&gt;
== LDIR ==&lt;br /&gt;
LDIR operation: &lt;br /&gt;
&lt;br /&gt;
* read byte from memory address pointed to by HL and write it to the memory address pointed to by DE &lt;br /&gt;
* Increment HL by 1 &lt;br /&gt;
* Increment DE by 1 &lt;br /&gt;
* If BC=0 then increment PC by 2 (otherwise dont increment it) &lt;br /&gt;
&lt;br /&gt;
== LDDR ==&lt;br /&gt;
LDDR operation: &lt;br /&gt;
&lt;br /&gt;
* read byte from memory address pointed to by HL and write it to the memory address pointed to by DE &lt;br /&gt;
* Decrement HL by 1 &lt;br /&gt;
* Decrement DE by 1 &lt;br /&gt;
* Increment Program counter by 2 &lt;br /&gt;
* If BC=0 then increment PC by 2 (otherwise dont increment it) &lt;br /&gt;
&lt;br /&gt;
== NOTES ==&lt;br /&gt;
* an interrupt can occur while a LDIR/LDDR is being executed. &lt;br /&gt;
&lt;br /&gt;
* If the LDIR/LDDR opcode is overwritten by itself then command execution will stop. Effectively, the LDIR opcode is repeatidly fetched and decoded for each byte fetched from memory. &lt;br /&gt;
&lt;br /&gt;
== IFF0 and IFF1 ==&lt;br /&gt;
IFF0 reflects the state of the maskable interrupt. The maskable interrupt can be enabled using the Z80 instruction &amp;quot;EI&amp;quot; and disabled using the Z80 instruction &amp;quot;DI&amp;quot;. When IFF0 is &amp;quot;1&amp;quot; masked interrupts are enabled, when a interrupt request is received by the Z80 it will be acknowledged and the interrupt handler executed. When IFF0 is &amp;quot;0&amp;quot; masked interrupts are disabled, any interrupt requests are ignored. &lt;br /&gt;
&lt;br /&gt;
When a non-maskable interrupt (NMI) is executed by the Z80, IFF1 is set to the value of IFF0. Then IFF0 is set to &amp;quot;0&amp;quot; to disable maskable interrupts. The NMI handler will be executed.When a &amp;quot;RETN&amp;quot; instruction is executed by the Z80, IFF0 is set to the value in IFF1, therefore the maskable interrupt state is restored. The state of IFF0 can be set at any time using the &amp;quot;DI&amp;quot; and &amp;quot;EI&amp;quot; instructions. &lt;br /&gt;
&lt;br /&gt;
== IM 0, IM 1, IM 2 ==&lt;br /&gt;
* The instructions &amp;quot;IM 0 &amp;quot;,&amp;quot;IM 1&amp;quot; and &amp;quot;IM 2&amp;quot; set the Z80 interrupt mode which defines the actions taken to execute the maskable interrupt handler.&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Some_features_of_the_Z80&amp;diff=102571</id>
		<title>Some features of the Z80</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Some_features_of_the_Z80&amp;diff=102571"/>
				<updated>2018-12-29T20:28:48Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: /* Flags/Status Register (F and F') */ Completing information about undocumented flags bits 5 &amp;amp; 3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;border: 1px solid rgb(228, 222, 222); margin: 0px 0px 5px; padding: 0.5em 1em; background-color: rgb(249, 249, 249);&amp;quot;&amp;gt;&amp;lt;center&amp;gt;'''''This article originally came from Kevin Thackers' archive at [http://www.cpctech.org.uk http://www.cpctech.org.uk].'''''&amp;lt;/center&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Flags/Status Register (F and F')==&lt;br /&gt;
&lt;br /&gt;
This register contains the condition flags. When a command is executed the flags are used to show information about the result. (e.g. the flags may be used to check if the result was positive, negative or zero). &lt;br /&gt;
&lt;br /&gt;
The flags register has this form: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Bit 7&lt;br /&gt;
| Sign flag&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 6&lt;br /&gt;
| Zero flag&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 5&lt;br /&gt;
| (note 1)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 4&lt;br /&gt;
| Half-carry flag&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 3&lt;br /&gt;
| (note 1)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 2&lt;br /&gt;
| Parity/Overflow flag&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 1&lt;br /&gt;
| Subtract flag&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 0&lt;br /&gt;
| Carry flag&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
Note: &lt;br /&gt;
&lt;br /&gt;
There are two bits in the flags register which are documented by Zilog as being unused. But in fact these bits do change: these bits are updated according to an undocumented register of the Z80 named either WZ or MEMPTR. This undocumented register is used to store temporary results such as 16-bits arithmetic results, and address (for example, loading I and the vector byte for interruption mode 2 to compute the value to load in PC).&lt;br /&gt;
&lt;br /&gt;
== Sign flag ==&lt;br /&gt;
This flag indicates if the result is positive or negative. If a result is negative, this flag is set to 1, if the result is positive, this flag is set to 0. &lt;br /&gt;
&lt;br /&gt;
== Zero flag ==&lt;br /&gt;
This flag indicates if the result is zero or non-zero. If the result was zero, this flag would be set to 1, if the result was non-zero (i.e. a number other than zero), this flag would be set to 0. &lt;br /&gt;
&lt;br /&gt;
== Parity/Overflow ==&lt;br /&gt;
This bit has two functions. In some commands it is used to show parity and other commands it is used to show overflow. &lt;br /&gt;
&lt;br /&gt;
Parity: &lt;br /&gt;
&lt;br /&gt;
If a byte has an even number of 1 digits then it has &amp;quot;even parity&amp;quot;, and if the byte has an odd number of 1 digits then it has &amp;quot;odd parity&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
The Parity Overflow is set to 1 when the byte has even parity, and set to 0 if the byte has odd parity. &lt;br /&gt;
&lt;br /&gt;
Overflow: &lt;br /&gt;
&lt;br /&gt;
This bit will hold the overflow after a arithmetic command. &lt;br /&gt;
&lt;br /&gt;
== Subtract ==&lt;br /&gt;
This flag is set to 1 if the command used subtraction, it is set to 0 if the command used addition. This flag is used in the execution of the DAA instruction to calculate the correct BCD representation of the contents of A. &lt;br /&gt;
&lt;br /&gt;
== Half-Carry flag ==&lt;br /&gt;
This flag holds the carry from bit 3 to bit 4. It is used by the DAA instruction to convert the contents of the A register to BCD form. &lt;br /&gt;
&lt;br /&gt;
== Carry flag ==&lt;br /&gt;
This flag holds the carry. &lt;br /&gt;
&lt;br /&gt;
'''Refresh Register (R)'''&lt;br /&gt;
&lt;br /&gt;
This register is special and it cannot be used to store data. Some people consider it to be random, but it is not, and you can easily predict it's value. However, by the way it works, it could be used as a simple but crude random number generator. &lt;br /&gt;
&lt;br /&gt;
This register is used mainly in protections, because when an instruction is added or removed the value of R will be different to the intended value and the data will not be deprotected correctly. &lt;br /&gt;
&lt;br /&gt;
Bit 7 remains unchanged, and it's value is only defined when a LD R,A instruction is executed. The lower 7 bits hold a count which is incremented after each z80 instruction executed. &lt;br /&gt;
&lt;br /&gt;
Generally, all commands which have a &amp;amp;CB, &amp;amp;ED, &amp;amp;DD or &amp;amp;FD prefix, increment R by 2, and all other commands increment R by 1. The execeptions to this rule are commands which repeat. &lt;br /&gt;
&lt;br /&gt;
'''Interrupt Modes'''&lt;br /&gt;
&lt;br /&gt;
The interrupt mode can be defined using the &amp;quot;IM&amp;quot; instruction. There are 3 interrupt modes: mode 0, mode 1 and mode 2. &lt;br /&gt;
&lt;br /&gt;
The descriptions below assume: &lt;br /&gt;
&lt;br /&gt;
* Interrupt requests are accepted by Z80, &lt;br /&gt;
* An interrupt request has been issued &lt;br /&gt;
&lt;br /&gt;
== Mode 0 ==&lt;br /&gt;
In this mode, the interrupting device will generate an interrupt and put a single-byte instruction onto the CPU bus. The Z80 will execute this instruction, and then continue with program execution. Since we can only put a single byte onto the bus, the RST instructions provide an excellent way of handling different interrupts. &lt;br /&gt;
&lt;br /&gt;
On a standard CPC the byte on the cpu data bus is normally &amp;amp;FF (but this is not guaranteed). &amp;amp;FF corresponds to the &amp;quot;RST 38H&amp;quot; instruction, and therefore on the CPC interrupt mode 0 is the same as interrupt mode 1. &lt;br /&gt;
&lt;br /&gt;
On the Plus, the ASIC will generate a byte to put onto the processor data bus, see the documentation on the ASIC for a description of this byte. &lt;br /&gt;
&lt;br /&gt;
== Mode 1 ==&lt;br /&gt;
In this mode the following will be done when a interrupt is &amp;quot;executed&amp;quot;: &lt;br /&gt;
&lt;br /&gt;
* The current program counter (PC) is pushed onto the stack. (SP) &lt;br /&gt;
* The program counter address is set to &amp;amp;0038. &lt;br /&gt;
&lt;br /&gt;
== Mode 2 ==&lt;br /&gt;
In this mode the following will be done when a interrupt is &amp;quot;executed&amp;quot;: &lt;br /&gt;
&lt;br /&gt;
* The current program counter (PC) is pushed onto the stack (SP), &lt;br /&gt;
* A address is formed using the I register and the data on the bus. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| Bit 15..8&lt;br /&gt;
| from I register&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bit 7..0&lt;br /&gt;
| Byte put onto processor bus by interrupting device&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* The Z80 will read the interrupt handler address from the location pointed to by the interrupt handler pointer, and then jump to that address. interrupt handler pointer: &lt;br /&gt;
&lt;br /&gt;
On a standard CPC, the byte put onto the processor bus is always &amp;amp;FF. So, on a standard CPC the following will be done: &lt;br /&gt;
&lt;br /&gt;
* The current Program Counter is pushed onto the stack &lt;br /&gt;
* The z80 fetches an address from &amp;amp;xxFF and jumps to that address. (where xx is the value from the I register) &lt;br /&gt;
&lt;br /&gt;
On a Plus, the ASIC can generate a different byte to put on the processor bus. So the lower 8 bits may be different. This is part of the extended interrupt handling features to cope with DMA Sound interrupts, scan line interrupts etc.. &lt;br /&gt;
&lt;br /&gt;
'''The Interrupt Vector Register (I)'''&lt;br /&gt;
&lt;br /&gt;
The I register is used in Z80 Interrupt Mode 2 to form When it is used in this way, it forms the upper 8-bits of an address which points to the interrupt handler. The lower 8-bits are put onto the CPU bus by an interrupting device. If you program uses Mode 0 or Mode 1 interrupts, then this register can be used to store data. &lt;br /&gt;
&lt;br /&gt;
'''DAA (Decimal Adjust accumulator)'''&lt;br /&gt;
&lt;br /&gt;
This Z80 command will convert the contents of the A register to BCD (Binary-Coded-Decimal) representation. (e.g. the BCD representation of 15 is &amp;amp;15). DAA uses the carry flag, subtract flag, half-carry flag and the A register to calculate a value to add to the A register to change it into a BCD number. I believe that the original value in the A register must be in BCD for this conversion to work. It is provided so that any non-BCD value can be added to a BCD value and then the result can be adjusted to BCD again. I tried to convert from a non-BCD number to BCD using DAA and it didnt work. In the following tables, x corresponds to the upper nibble of register A (before the command has executed), and y corresponds to the lower nibble. These tables show the value that is added to the A register to convert it to BCD representation depending on the flags. These values are the ones used by my emulator (A-CPC). I have found information about other tables, but these did not produce the correct values. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Flags set                          Byte&lt;br /&gt;
                                 (0..9)(0..9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;--------------------------------------------&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (None)                          + &amp;amp;00&lt;br /&gt;
 Carry:                          + &amp;amp;60&lt;br /&gt;
 Subtract:                       + &amp;amp;00&lt;br /&gt;
 Subtract+Carry:                 + &amp;amp;A0&lt;br /&gt;
 Half-carry:                     + &amp;amp;06&lt;br /&gt;
 Half-carry+Carry:               + &amp;amp;66&lt;br /&gt;
 Half-carry+Subtract:            + &amp;amp;FA&lt;br /&gt;
 Half-carry+Subtract+Carry:      + &amp;amp;9A&lt;br /&gt;
&lt;br /&gt;
 Flags set                          Byte&lt;br /&gt;
                                 (0..9)(A..F)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;--------------------------------------------&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (None)                          + &amp;amp;06&lt;br /&gt;
 Carry:                          + &amp;amp;66&lt;br /&gt;
 Subtract:                       + &amp;amp;00&lt;br /&gt;
 Subtract+Carry:                 + &amp;amp;a0&lt;br /&gt;
 Half-carry:                     + &amp;amp;06&lt;br /&gt;
 Half-carry+Carry:               + &amp;amp;66&lt;br /&gt;
 Half-carry+Subtract:            + &amp;amp;fa&lt;br /&gt;
 Half-carry+Subtract+Carry:      + &amp;amp;9A&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Flags set                          Byte&lt;br /&gt;
                                 (A..F)(0..9)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;--------------------------------------------&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (None)                          + &amp;amp;60&lt;br /&gt;
 Carry:                          + &amp;amp;60&lt;br /&gt;
 Subtract:                       + &amp;amp;00&lt;br /&gt;
 Subtract+Carry:                 + &amp;amp;A0&lt;br /&gt;
 Half-carry:                     + &amp;amp;66&lt;br /&gt;
 Half-carry+Carry:               + &amp;amp;66&lt;br /&gt;
 Half-carry+Subtract:            + &amp;amp;fa&lt;br /&gt;
 Half-carry+Subtract+Carry:      + &amp;amp;9A&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Flags set                          Byte&lt;br /&gt;
                                 (A..F)(A..F)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;--------------------------------------------&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (None)                          + &amp;amp;66&lt;br /&gt;
 Carry:                          + &amp;amp;66&lt;br /&gt;
 Subtract:                       + &amp;amp;00&lt;br /&gt;
 Subtract+Carry:                 + &amp;amp;a0&lt;br /&gt;
 Half-carry:                     + &amp;amp;66&lt;br /&gt;
 Half-carry+Carry:               + &amp;amp;66&lt;br /&gt;
 Half-carry+Subtract:            + &amp;amp;fa&lt;br /&gt;
 Half-carry+Subtract+Carry:      + &amp;amp;9A&lt;br /&gt;
&lt;br /&gt;
'''LDIR and LDDR'''&lt;br /&gt;
&lt;br /&gt;
This is a block copying function, it is used to transfer data from one part of memory to another fast. &lt;br /&gt;
&lt;br /&gt;
* HL must be pre-loaded with the start address &lt;br /&gt;
* DE must be pre-loaded with the destination address &lt;br /&gt;
* BC must be pre-loaded with the length of data &lt;br /&gt;
&lt;br /&gt;
== LDIR ==&lt;br /&gt;
LDIR operation: &lt;br /&gt;
&lt;br /&gt;
* read byte from memory address pointed to by HL and write it to the memory address pointed to by DE &lt;br /&gt;
* Increment HL by 1 &lt;br /&gt;
* Increment DE by 1 &lt;br /&gt;
* If BC=0 then increment PC by 2 (otherwise dont increment it) &lt;br /&gt;
&lt;br /&gt;
== LDDR ==&lt;br /&gt;
LDDR operation: &lt;br /&gt;
&lt;br /&gt;
* read byte from memory address pointed to by HL and write it to the memory address pointed to by DE &lt;br /&gt;
* Decrement HL by 1 &lt;br /&gt;
* Decrement DE by 1 &lt;br /&gt;
* Increment Program counter by 2 &lt;br /&gt;
* If BC=0 then increment PC by 2 (otherwise dont increment it) &lt;br /&gt;
&lt;br /&gt;
== NOTES ==&lt;br /&gt;
* an interrupt can occur while a LDIR/LDDR is being executed. &lt;br /&gt;
&lt;br /&gt;
* If the LDIR/LDDR opcode is overwritten by itself then command execution will stop. Effectively, the LDIR opcode is repeatidly fetched and decoded for each byte fetched from memory. &lt;br /&gt;
&lt;br /&gt;
== IFF0 and IFF1 ==&lt;br /&gt;
IFF0 reflects the state of the maskable interrupt. The maskable interrupt can be enabled using the Z80 instruction &amp;quot;EI&amp;quot; and disabled using the Z80 instruction &amp;quot;DI&amp;quot;. When IFF0 is &amp;quot;1&amp;quot; masked interrupts are enabled, when a interrupt request is received by the Z80 it will be acknowledged and the interrupt handler executed. When IFF0 is &amp;quot;0&amp;quot; masked interrupts are disabled, any interrupt requests are ignored. &lt;br /&gt;
&lt;br /&gt;
When a non-maskable interrupt (NMI) is executed by the Z80, IFF1 is set to the value of IFF0. Then IFF0 is set to &amp;quot;0&amp;quot; to disable maskable interrupts. The NMI handler will be executed.When a &amp;quot;RETN&amp;quot; instruction is executed by the Z80, IFF0 is set to the value in IFF1, therefore the maskable interrupt state is restored. The state of IFF0 can be set at any time using the &amp;quot;DI&amp;quot; and &amp;quot;EI&amp;quot; instructions. &lt;br /&gt;
&lt;br /&gt;
== IM 0, IM 1, IM 2 ==&lt;br /&gt;
* The instructions &amp;quot;IM 0 &amp;quot;,&amp;quot;IM 1&amp;quot; and &amp;quot;IM 2&amp;quot; set the Z80 interrupt mode which defines the actions taken to execute the maskable interrupt handler.&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=CRTC&amp;diff=102541</id>
		<title>CRTC</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=CRTC&amp;diff=102541"/>
				<updated>2018-12-29T01:35:24Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: /* The 6845 Registers */ Add explanation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* ''This is an article about the &amp;quot;Cathode Ray Tube Controller&amp;quot; hardware unit of the Amstrad CPC. For the cpc scene member see [[ChaRleyTroniC]]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The '''CRTC''' (Cathode Ray Tube Controller) helps to generate the video signal of the Amstrad CPC.&lt;br /&gt;
&lt;br /&gt;
NOTE: This document describes the functionality in terms of the CPC with its separate CRTC and Gate-Array. The Plus has both integrated into the same IC, but could be considered to have two functional blocks, one for CRTC and one for Gate-Array. In this document the term 'Gate-Array' is used, but this also applies to the ASIC.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The 6845 Cathode Ray Tube Controller (CRTC) is a programmable IC used to generate video displays. This IC is used in a variety of computers including the Amstrad CPC, Amstrad CPC+ and KC Compact. &lt;br /&gt;
&lt;br /&gt;
The CRTC was a common part available from many different manufacturers. During the life of the CPC, Amstrad sourced the CRTC from various manufacturers. &lt;br /&gt;
&lt;br /&gt;
All ICs used were based on the same design but have a different implementation. As a result they do not operate identically in all situations. This document highlights these differences. &lt;br /&gt;
&lt;br /&gt;
This table lists the known ICs used, with their part number, manufacturer and type number. &lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Part number''||''Manufacturer''||''Type number (note 3)''&lt;br /&gt;
|-&lt;br /&gt;
|HD6845S||Hitachi||0&lt;br /&gt;
|-&lt;br /&gt;
|UM6845||UMC||0&lt;br /&gt;
|-&lt;br /&gt;
|UM6845R||UMC||1&lt;br /&gt;
|-&lt;br /&gt;
|MC6845||Motorola||2&lt;br /&gt;
|-&lt;br /&gt;
|AMS40489||Amstrad||3 (note 1)&lt;br /&gt;
|-&lt;br /&gt;
|40226||Amstrad||4 (note 2)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''NOTES''' &lt;br /&gt;
&lt;br /&gt;
1. The CRTC functionality is integrated into the CPC+ ASIC. This type exists only in the CPC464+,CPC6128+ and GX4000. &lt;br /&gt;
&lt;br /&gt;
2. This type exists in &amp;quot;cost-down&amp;quot; CPC464 and CPC6128 systems. In the &amp;quot;cost-down&amp;quot; the CRTC functionality is integrated into a single ASIC IC. This ASIC is often refered to as the &amp;quot;Pre-ASIC&amp;quot; because it preceeded the CPC+ ASIC. The CRTC functionality of the Pre-ASIC is almost identical to the CRTC within the ASIC.&lt;br /&gt;
 &lt;br /&gt;
3. In the Amstrad community each 6845 implementation has been assigned a type number. This type identifies a group of implementations which operate in exactly the same way. &lt;br /&gt;
&lt;br /&gt;
As far as I know, the type number system was originally used by demo programmers. &lt;br /&gt;
&lt;br /&gt;
It is possible to detect the 6845 present using software methods, and this is done to: &lt;br /&gt;
&lt;br /&gt;
* warn that the software was not designed for the detected 6845 and may function incorrectly, &lt;br /&gt;
* to adapt the software so that it will run with the detected 6845 &lt;br /&gt;
* In most cases, the type of the detected 6845 is reported. &lt;br /&gt;
&lt;br /&gt;
4. As far as I know, the KC compact used HD6845R only.&lt;br /&gt;
&lt;br /&gt;
== Timings and relating with Z80 instructions count ==&lt;br /&gt;
&lt;br /&gt;
Some informations like : how many Z80 instructions can I fit within a scan line ? Within a screen ? Etc... See http://www.cpcwiki.eu/forum/programming/frame-flyback-and-interrupts/msg25106/#msg25106&lt;br /&gt;
(To be extracted/edited to conform to wiki good practices).&lt;br /&gt;
&lt;br /&gt;
==Programming==&lt;br /&gt;
&lt;br /&gt;
The 6845 is selected when bit 14 of the I/O port address is set to &amp;quot;0&amp;quot;. Bit 9 and 8 of the I/O port address define the function to access. The remaining bits can be any value, but it is adviseable to set these to &amp;quot;1&amp;quot; to avoid conflict with other devices in the system.&lt;br /&gt;
&lt;br /&gt;
The recommended I/O port addresses are&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''I/O port address''||''Function''||''Read/Write''&lt;br /&gt;
|-&lt;br /&gt;
|&amp;amp;BCxx||Select 6845 register||Write only&lt;br /&gt;
|-&lt;br /&gt;
|&amp;amp;BDxx||Write 6845 register data||Write only&lt;br /&gt;
|-&lt;br /&gt;
|&amp;amp;BExx||(note 1)||Read only&lt;br /&gt;
|-&lt;br /&gt;
|&amp;amp;BFxx||(note 1)||Read only&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''NOTE'''&lt;br /&gt;
&lt;br /&gt;
1. The function of these I/O ports is dependant on the CRTC type&lt;br /&gt;
 &lt;br /&gt;
2. If you perform an IN instruction to the select or write functions it will write data to the CRTC from the current data on the bus.&lt;br /&gt;
&lt;br /&gt;
==Addressing==&lt;br /&gt;
&lt;br /&gt;
The following table defines the generated memory address from the CRTC and Gate-Array signals. &lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Memory Address Signal''||''Signal source''||''Signal name''&lt;br /&gt;
|-&lt;br /&gt;
|A15||6845||MA13 &lt;br /&gt;
|-&lt;br /&gt;
|A14||6845||MA12&lt;br /&gt;
|-&lt;br /&gt;
|A13||6845||RA2 &lt;br /&gt;
|-&lt;br /&gt;
|A12||6845||RA1 &lt;br /&gt;
|-&lt;br /&gt;
|A11||6845||RA0 &lt;br /&gt;
|-&lt;br /&gt;
|A10||6845||MA9 &lt;br /&gt;
|-&lt;br /&gt;
|A9||6845||MA8 &lt;br /&gt;
|-&lt;br /&gt;
|A8||6845||MA7 &lt;br /&gt;
|-&lt;br /&gt;
|A7||6845||MA6 &lt;br /&gt;
|-&lt;br /&gt;
|A6||6845||MA5 &lt;br /&gt;
|-&lt;br /&gt;
|A5||6845||MA4 &lt;br /&gt;
|-&lt;br /&gt;
|A4||6845||MA3 &lt;br /&gt;
|-&lt;br /&gt;
|A3||6845||MA2 &lt;br /&gt;
|-&lt;br /&gt;
|A2||6845||MA1 &lt;br /&gt;
|-&lt;br /&gt;
|A1||6845||MA0&lt;br /&gt;
|-&lt;br /&gt;
|A0||Gate-Array||CCLK&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CRTC generates the address, Gate-Array reads the data and converts it to pixels based on the current mode.&lt;br /&gt;
&lt;br /&gt;
== DISPTMG ==&lt;br /&gt;
&lt;br /&gt;
DISPTMG signal defines the border. When DISPTMG is &amp;quot;1&amp;quot; the border colour is output by the Gate-Array to the display. The DISPTMG can be forced using R8 (DISPTMG Skew) on type 0,3 and 4 or by setting R6=0 on type 1. It is not possible to force the DISPTMG on type 2 or 5.&lt;br /&gt;
&lt;br /&gt;
The border has higher priority than pixels but lower priority than the black colour output when HSYNC/VSYNC are active.&lt;br /&gt;
&lt;br /&gt;
== HSYNC and VSYNC ==&lt;br /&gt;
&lt;br /&gt;
On CPC, HSYNC and VSYNC from the CRTC are passed into the Gate-Array.&lt;br /&gt;
&lt;br /&gt;
When HSYNC is active Gate-Array outputs the palette colour black. If the HSYNC is set to 14 characters then black will be output for 14us.&lt;br /&gt;
&lt;br /&gt;
The HSYNC is modified before being sent to the monitor. It  happens 2us after the HSYNC from the CRTC and lasts 4us when HSYNC length is greater or equal to 6. &lt;br /&gt;
&lt;br /&gt;
If R2=46, and HSYNC width is 14 then monitor hsync starts at 48 and lasts until 51.&lt;br /&gt;
&lt;br /&gt;
On a CPC monitor, the HSYNC is rendered in &amp;quot;absolute black&amp;quot;. It is darker than the black output by the Gate-Array.&lt;br /&gt;
&lt;br /&gt;
The VSYNC is also modified before being sent to the monitor. It happens two lines* after the VSYNC from the CRTC and stay two lines (same cut rule if VSYNC is lower than 4). PAL (50Hz) does need two lines VSYNC_width, and 4us HSYNC_width.&lt;br /&gt;
&lt;br /&gt;
Using CRTC1, VSYNC width value 0 means a value of 16.&lt;br /&gt;
&lt;br /&gt;
== The 6845 Registers ==&lt;br /&gt;
&lt;br /&gt;
The Internal registers of the 6845 are:&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Register Index''||''Register Name''||''Range''||''CPC Setting''||''Notes''&lt;br /&gt;
|-&lt;br /&gt;
|0||Horizontal Total||00000000||63||Width of the screen, in characters. Should always be 63 (64 characters). 1 character == 1μs.&lt;br /&gt;
|-&lt;br /&gt;
|1||Horizontal Displayed||00000000||40||Number of characters displayed. Once horizontal character count (HCC) matches this value, DISPTMG is set to 1.&lt;br /&gt;
|-&lt;br /&gt;
|2||Horizontal Sync Position||00000000||46||When to start the HSync signal.&lt;br /&gt;
|-&lt;br /&gt;
|3||Horizontal and Vertical Sync Widths||VVVVHHHH||128+14||HSync pulse width in characters (0 means 16 on some CRTC), should always be more than 8; VSync width in scan-lines. (0 means 16 on some CRTC. Not present on all CRTCs, fixed to 16 lines on these)&lt;br /&gt;
|-&lt;br /&gt;
|4||Vertical Total||x0000000||38||Height of the screen, in characters.&lt;br /&gt;
|-&lt;br /&gt;
|5||Vertical Total Adjust||xxx00000||0||Measured in scanlines, can be used for smooth vertical scrolling on CPC.&lt;br /&gt;
|-&lt;br /&gt;
|6||Vertical Displayed||x0000000||25||Height of displayed screen in characters. Once vertical character count (VCC) matches this value, DISPTMG is set to 1.&lt;br /&gt;
|-&lt;br /&gt;
|7||Vertical Sync position||x0000000||30||When to start the VSync signal, in characters.&lt;br /&gt;
|-&lt;br /&gt;
|8||Interlace and Skew||xxxxxx00||0||00: No interlace; 01: Interlace Sync Raster Scan Mode; 10: No Interlace; 11: Interlace Sync and Video Raster Scan Mode&lt;br /&gt;
|-&lt;br /&gt;
|9||Maximum Raster Address||xxx00000||7||Maximum scan line address on CPC can hold between 0 and 7, higher values' upper bits are ignored&lt;br /&gt;
|-&lt;br /&gt;
|10||Cursor Start Raster||xBP00000||0||Cursor not used on CPC. B = Blink On/Off; P = Blink Period Control (Slow/Fast). Sets first raster row of character that cursor is on to invert.&lt;br /&gt;
|-&lt;br /&gt;
|11||Cursor End Raster||xxx00000||0||Sets last raster row of character that cursor is on to invert&lt;br /&gt;
|-&lt;br /&gt;
|12||Display Start Address (High)||xx000000||48&lt;br /&gt;
|-&lt;br /&gt;
|13||Display Start Address (Low)||00000000||0||Allows you to offset the start of screen memory for hardware scrolling, and if using memory from address &amp;amp;0000 with the firmware.&lt;br /&gt;
|-&lt;br /&gt;
|14||Cursor Address (High)||xx000000||0&lt;br /&gt;
|-&lt;br /&gt;
|15||Cursor Address (Low)||00000000||0&lt;br /&gt;
|-&lt;br /&gt;
|16||Light Pen Address (High)||xx000000||||Read Only&lt;br /&gt;
|-&lt;br /&gt;
|17||Light Pen Address (Low)||00000000||||Read Only&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
registers 18-31 read as 0, on type 0 and 2.&lt;br /&gt;
registers 18-30 read as 0 on type1, register 31 reads as 0x0ff.&lt;br /&gt;
&lt;br /&gt;
Details about Reg. 12 and Reg. 13 specifically:&lt;br /&gt;
&lt;br /&gt;
  .------- REG 12 --------.   .------- REG 13 --------.&lt;br /&gt;
  |                       |   |                       |&lt;br /&gt;
   15 14 13 12 11 10 09 08     07 06 05 04 03 02 01 00&lt;br /&gt;
  .--.--.--.--.--.--.--.--.   .--.--.--.--.--.--.--.--.&lt;br /&gt;
  |X |X |  |  |  |  |  |  |   |  |  |  |  |  |  |  |  |&lt;br /&gt;
  '--'--'--'--'--'--'--'--'   '--'--'--'--'--'--'--'--'&lt;br /&gt;
        '--.--'--.--'---------------.-----------------'&lt;br /&gt;
           |     |                  |&lt;br /&gt;
           |     |                  '------&amp;gt; Offset for setting&lt;br /&gt;
           |     |                           videoram &lt;br /&gt;
           |     |                           (1024 positions)&lt;br /&gt;
           |     |                           Bits 0..9&lt;br /&gt;
           |     |&lt;br /&gt;
           |     '-------------------------&amp;gt; Video Buffer : note (1)&lt;br /&gt;
           |&lt;br /&gt;
           '-------------------------------&amp;gt; Video Page : note (2)&lt;br /&gt;
  note (1)                 note (2)&lt;br /&gt;
  .--.--.--------------.  .--.--.---------------.&lt;br /&gt;
  |11|10| Video Buffer |  |13|12|   Video Page  |&lt;br /&gt;
  |--|--|--------------|  |--|--|---------------|&lt;br /&gt;
  | 0| 0|     16Ko     |  | 0| 0|  0000 - 3FFF  |&lt;br /&gt;
  |--|--|--------------|  |--|--|---------------|&lt;br /&gt;
  | 0| 1|     16Ko     |  | 0| 1|  4000 - 7FFF  |&lt;br /&gt;
  |--|--|--------------|  |--|--|---------------|&lt;br /&gt;
  | 1| 0|     16Ko     |  | 1| 0|  8000 - BFFF  |&lt;br /&gt;
  |--|--|--------------|  |--|--|---------------|&lt;br /&gt;
  | 1| 1|     32Ko     |  | 1| 1|  C000 - FFFF  |&lt;br /&gt;
  '--'--'--------------'  '--'--'---------------'&lt;br /&gt;
&lt;br /&gt;
So, it's possible to use 32KB screen size (used for [[Programming:Overscan|overscan]]) by setting bits 11 and 10 both to 1 (of Register 12). Bits MA11 and MA10 of the address generated by the CRTC are not written on the address bus to access video memory; settings both bits to 1 is the only way to cause a carry to bit MA12 when address pass over the end of current video page to change the memory address to the next video page.&lt;br /&gt;
&lt;br /&gt;
== CRTC Differences ==&lt;br /&gt;
&lt;br /&gt;
In this section I will attempt to identify all the differences between each CRTC. &lt;br /&gt;
&lt;br /&gt;
The following tables list the functions that can be accessed for each type: &lt;br /&gt;
&lt;br /&gt;
Type 0&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''b1''||''b0''||''Function''||''Read/Write'' &lt;br /&gt;
|-&lt;br /&gt;
|0||0||Select internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|0||1||Write to selected internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|1||0||-||- &lt;br /&gt;
|-&lt;br /&gt;
|1||1||Read from selected internal 6845 register||Read only &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Type 1&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''b1''||''b0''||''Function''||''Read/Write'' &lt;br /&gt;
|-&lt;br /&gt;
|0||0||Select internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|0||1||Write to selected internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|1||0||Read Status Register||Read Only &lt;br /&gt;
|-&lt;br /&gt;
|1||1||Read from selected internal 6845 register||Read only &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Type 2&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''b1''||''b0''||''Function''||''Read/Write'' &lt;br /&gt;
|-&lt;br /&gt;
|0||0||Select internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|0||1||Write to selected internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|1||0||-||- &lt;br /&gt;
|-&lt;br /&gt;
|1||1||Read from selected internal 6845 register||Read only &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Type 3 and 4&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''b1''||''b0''||''Function''||''Read/Write'' &lt;br /&gt;
|-&lt;br /&gt;
|0||0||Select internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|0||1||Write to selected internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|1||0||Read from selected internal 6845 register||Read Only &lt;br /&gt;
|-&lt;br /&gt;
|1||1||Read from selected internal 6845 register||Read only &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is not possible to read from all the internal registers, this table shows the read/write status of each register for each type: &lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|rowspan=2|''Register Index''||rowspan=2|''Register Name''||colspan=4|''Type'' &lt;br /&gt;
|-&lt;br /&gt;
|0||1||2||3||4&lt;br /&gt;
|-&lt;br /&gt;
|0||Horizontal Total||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|1||Horizontal Displayed||Write Only||Write Only||Write Only||(note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|2||Horizontal Sync Position||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|3||Horizontal and Vertical Sync Widths||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|4||Vertical Total||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|5||Vertical Total Adjust||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|6||Vertical Displayed||Write Only||Write Only||Write Only||(note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|7||Vertical Sync position||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|8||Interlace and Skew||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|9||Maximum Raster Address||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|10||Cursor Start Raster||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|11||Cursor End Raster||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|12||Display Start Address (High)||Read/Write||Write Only||Write Only||Read/Write (note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|13||Display Start Address (Low)||Read/Write||Write Only||Write Only||Read/Write (note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|14||Cursor Address (High)||Read/Write||Read/Write||Read/Write||Read/Write (note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|15||Cursor Address (Low)||Read/Write||Read/Write||Read/Write||Read/Write (note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|16||Light Pen Address (High)||Read Only||Read Only||Read Only||Read Only (note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|17||Light Pen Address (Low)||Read Only||Read Only||Read Only||Read Only (note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
&lt;br /&gt;
1. On type 0 and 1, if a Write Only register is read from, &amp;quot;0&amp;quot; is returned. &lt;br /&gt;
&lt;br /&gt;
2. See the document &amp;quot;Extra CPC Plus Hardware Information&amp;quot; for more details.&lt;br /&gt;
&lt;br /&gt;
3. CRTC type 4 is the same as CRTC type 3. The registers also repeat as they do on the type 3.&lt;br /&gt;
&lt;br /&gt;
== Horizontal and Vertical Sync (R3) ==&lt;br /&gt;
&lt;br /&gt;
UM6845:&lt;br /&gt;
&lt;br /&gt;
Bits 7..4 define Vertical Sync Width. If 0 is programmed this gives 16 lines of VSYNC.&lt;br /&gt;
Bits 3..0 define Horizontal Sync Width. If 0 is programmed no HSYNC is generated.&lt;br /&gt;
&lt;br /&gt;
UM6845R:&lt;br /&gt;
&lt;br /&gt;
Bits 7..4 are ignored. Vertical Sync is fixed at 16 lines.&lt;br /&gt;
Bits 3..0 define Horizontal Sync Width. If 0 is programmed no HSYNC is generated.&lt;br /&gt;
&lt;br /&gt;
MC6845:&lt;br /&gt;
&lt;br /&gt;
Bits 7..4 are ignored. Vertical Sync is fixed at 16 lines.&lt;br /&gt;
Bits 3..0 define Horizontal Sync Width. If 0 is programmed this gives a HSYNC width of 16.&lt;br /&gt;
&lt;br /&gt;
Pre-ASIC/ASIC:&lt;br /&gt;
&lt;br /&gt;
Bits 7..4 define Vertical Sync Width. If 0 is programmed this gives 16 lines of VSYNC.&lt;br /&gt;
Bits 3..0 define Horizontal Sync Width. If 0 is programmed this gives a HSYNC width of 16.&lt;br /&gt;
&lt;br /&gt;
== UM6845R and R31 ==&lt;br /&gt;
&lt;br /&gt;
R31 is described in the UM6845R documentation as &amp;quot;Dummy Register&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Its use is described in the documentation for the Rockwell R6545 in combination with R18, R19 and R8 and the Status Register.&lt;br /&gt;
&lt;br /&gt;
In the UM6845R it appears to have no effect. Reading and writing does nothing. Reading it returns 0x0ff.&lt;br /&gt;
&lt;br /&gt;
R31 doesn't exist on types 0,2,3.&lt;br /&gt;
&lt;br /&gt;
== UM6845R and R12/R13 ==&lt;br /&gt;
&lt;br /&gt;
The UM6845R differs to other CRTC in respect of R12/R13. &lt;br /&gt;
&lt;br /&gt;
When VCC=0, R12/R13 is re-read at the start of each line. R12/R13 can therefore be changed for each scanline when VCC=0. &lt;br /&gt;
&lt;br /&gt;
Just like other CRTCs when RC==(R9-1), the current MA is captured for the next char-line.&lt;br /&gt;
&lt;br /&gt;
In demos to make a display compatible with all CRTCs program R12/R13 when VCC!=0. This will then take effect at the next frame start.&lt;br /&gt;
&lt;br /&gt;
== UM6845R status register ==&lt;br /&gt;
&lt;br /&gt;
The UM6845R has a status register that can be read using port &amp;amp;BExx.&lt;br /&gt;
&lt;br /&gt;
Bit 6 is set to 1 if there is a strobe input to the /LPEN signal. It is cleared to 0 when either R17 or R16 (LPEN address) of the CRTC are read. It signals there is a valid LPEN input. On my CPC (arnoldemu) with UM6845R, it is triggered at power on, R17 and R16 have the values 0 when read.&lt;br /&gt;
&lt;br /&gt;
Bit 5 is set to 1 when CRTC is in &amp;quot;vertical blanking&amp;quot;. Vertical blanking is when the vertical border is active. i.e. VCC&amp;gt;=R6. &lt;br /&gt;
&lt;br /&gt;
It is cleared when the frame is started (VCC=0). It is not directly related to the DISPTMG output (used by the CPC to display the border colour) because that output is a combination of horizontal and vertical blanking.&lt;br /&gt;
This bit will be 0 when pixels are being displayed.&lt;br /&gt;
&lt;br /&gt;
All the other bits read as 0 and don't have any function.&lt;br /&gt;
&lt;br /&gt;
== Datasheets ==&lt;br /&gt;
&lt;br /&gt;
* [[Media:hd6845.hitachi.pdf|HD6845S (Hitachi) (aka type 0)]]&lt;br /&gt;
* [[Media:Um6845.umc.pdf|UM6845 (UMC)  (aka type 0)]]&lt;br /&gt;
* [[Media:Um6845r.umc.pdf|UM6845R (UMC)  (aka type 1)]]&lt;br /&gt;
* [[Media:Mc6845.motorola.pdf|MC6845 (Motorola) (aka type 2)]]&lt;br /&gt;
&lt;br /&gt;
* [[VHDL implementation of the 6845]]&lt;br /&gt;
&lt;br /&gt;
== Clones ==&lt;br /&gt;
* [CM607P   a Bulgarian clone made in Pravetz factory]&lt;br /&gt;
* [EF6845P  by Thomson Semiconductors]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tools about CRTC ==&lt;br /&gt;
&lt;br /&gt;
*  [http://www.cpcwiki.eu/imgs/9/99/Elmar_Krieger-SPECIAL_EFFECTS.dsk  some BASIC tools to detect CRTC types 0-1-2 and show some effects - by [[Elmar Krieger]] ]     (DSK for Emulators)&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/6845 Wikipedia on the CRTC]&lt;br /&gt;
* [http://www.grimware.org/doku.php/documentations/devices/crtc CRTCs on grimware]&lt;br /&gt;
&lt;br /&gt;
==Related pages==&lt;br /&gt;
&lt;br /&gt;
*[[Gate Array]]&lt;br /&gt;
&lt;br /&gt;
*[[ASIC]]&lt;br /&gt;
&lt;br /&gt;
*[[Video modes]]&lt;br /&gt;
&lt;br /&gt;
*[[Synchronising with the CRTC and display]] : technic and details on the relationship between Gate Array and CRTC.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]] [[Category:CPC Internal Components]] [[Category:Programming]] [[Category:Datasheet]] [[Category:Graphic]]&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=CRTC&amp;diff=102540</id>
		<title>CRTC</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=CRTC&amp;diff=102540"/>
				<updated>2018-12-29T01:25:15Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: /* The 6845 Registers */ R12 is set to 0x30 (48) : MA13=1 MA12=1 =&amp;gt; A15=1 A14=1 to start video at address 0xC000&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* ''This is an article about the &amp;quot;Cathode Ray Tube Controller&amp;quot; hardware unit of the Amstrad CPC. For the cpc scene member see [[ChaRleyTroniC]]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The '''CRTC''' (Cathode Ray Tube Controller) helps to generate the video signal of the Amstrad CPC.&lt;br /&gt;
&lt;br /&gt;
NOTE: This document describes the functionality in terms of the CPC with its separate CRTC and Gate-Array. The Plus has both integrated into the same IC, but could be considered to have two functional blocks, one for CRTC and one for Gate-Array. In this document the term 'Gate-Array' is used, but this also applies to the ASIC.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The 6845 Cathode Ray Tube Controller (CRTC) is a programmable IC used to generate video displays. This IC is used in a variety of computers including the Amstrad CPC, Amstrad CPC+ and KC Compact. &lt;br /&gt;
&lt;br /&gt;
The CRTC was a common part available from many different manufacturers. During the life of the CPC, Amstrad sourced the CRTC from various manufacturers. &lt;br /&gt;
&lt;br /&gt;
All ICs used were based on the same design but have a different implementation. As a result they do not operate identically in all situations. This document highlights these differences. &lt;br /&gt;
&lt;br /&gt;
This table lists the known ICs used, with their part number, manufacturer and type number. &lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Part number''||''Manufacturer''||''Type number (note 3)''&lt;br /&gt;
|-&lt;br /&gt;
|HD6845S||Hitachi||0&lt;br /&gt;
|-&lt;br /&gt;
|UM6845||UMC||0&lt;br /&gt;
|-&lt;br /&gt;
|UM6845R||UMC||1&lt;br /&gt;
|-&lt;br /&gt;
|MC6845||Motorola||2&lt;br /&gt;
|-&lt;br /&gt;
|AMS40489||Amstrad||3 (note 1)&lt;br /&gt;
|-&lt;br /&gt;
|40226||Amstrad||4 (note 2)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''NOTES''' &lt;br /&gt;
&lt;br /&gt;
1. The CRTC functionality is integrated into the CPC+ ASIC. This type exists only in the CPC464+,CPC6128+ and GX4000. &lt;br /&gt;
&lt;br /&gt;
2. This type exists in &amp;quot;cost-down&amp;quot; CPC464 and CPC6128 systems. In the &amp;quot;cost-down&amp;quot; the CRTC functionality is integrated into a single ASIC IC. This ASIC is often refered to as the &amp;quot;Pre-ASIC&amp;quot; because it preceeded the CPC+ ASIC. The CRTC functionality of the Pre-ASIC is almost identical to the CRTC within the ASIC.&lt;br /&gt;
 &lt;br /&gt;
3. In the Amstrad community each 6845 implementation has been assigned a type number. This type identifies a group of implementations which operate in exactly the same way. &lt;br /&gt;
&lt;br /&gt;
As far as I know, the type number system was originally used by demo programmers. &lt;br /&gt;
&lt;br /&gt;
It is possible to detect the 6845 present using software methods, and this is done to: &lt;br /&gt;
&lt;br /&gt;
* warn that the software was not designed for the detected 6845 and may function incorrectly, &lt;br /&gt;
* to adapt the software so that it will run with the detected 6845 &lt;br /&gt;
* In most cases, the type of the detected 6845 is reported. &lt;br /&gt;
&lt;br /&gt;
4. As far as I know, the KC compact used HD6845R only.&lt;br /&gt;
&lt;br /&gt;
== Timings and relating with Z80 instructions count ==&lt;br /&gt;
&lt;br /&gt;
Some informations like : how many Z80 instructions can I fit within a scan line ? Within a screen ? Etc... See http://www.cpcwiki.eu/forum/programming/frame-flyback-and-interrupts/msg25106/#msg25106&lt;br /&gt;
(To be extracted/edited to conform to wiki good practices).&lt;br /&gt;
&lt;br /&gt;
==Programming==&lt;br /&gt;
&lt;br /&gt;
The 6845 is selected when bit 14 of the I/O port address is set to &amp;quot;0&amp;quot;. Bit 9 and 8 of the I/O port address define the function to access. The remaining bits can be any value, but it is adviseable to set these to &amp;quot;1&amp;quot; to avoid conflict with other devices in the system.&lt;br /&gt;
&lt;br /&gt;
The recommended I/O port addresses are&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''I/O port address''||''Function''||''Read/Write''&lt;br /&gt;
|-&lt;br /&gt;
|&amp;amp;BCxx||Select 6845 register||Write only&lt;br /&gt;
|-&lt;br /&gt;
|&amp;amp;BDxx||Write 6845 register data||Write only&lt;br /&gt;
|-&lt;br /&gt;
|&amp;amp;BExx||(note 1)||Read only&lt;br /&gt;
|-&lt;br /&gt;
|&amp;amp;BFxx||(note 1)||Read only&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''NOTE'''&lt;br /&gt;
&lt;br /&gt;
1. The function of these I/O ports is dependant on the CRTC type&lt;br /&gt;
 &lt;br /&gt;
2. If you perform an IN instruction to the select or write functions it will write data to the CRTC from the current data on the bus.&lt;br /&gt;
&lt;br /&gt;
==Addressing==&lt;br /&gt;
&lt;br /&gt;
The following table defines the generated memory address from the CRTC and Gate-Array signals. &lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Memory Address Signal''||''Signal source''||''Signal name''&lt;br /&gt;
|-&lt;br /&gt;
|A15||6845||MA13 &lt;br /&gt;
|-&lt;br /&gt;
|A14||6845||MA12&lt;br /&gt;
|-&lt;br /&gt;
|A13||6845||RA2 &lt;br /&gt;
|-&lt;br /&gt;
|A12||6845||RA1 &lt;br /&gt;
|-&lt;br /&gt;
|A11||6845||RA0 &lt;br /&gt;
|-&lt;br /&gt;
|A10||6845||MA9 &lt;br /&gt;
|-&lt;br /&gt;
|A9||6845||MA8 &lt;br /&gt;
|-&lt;br /&gt;
|A8||6845||MA7 &lt;br /&gt;
|-&lt;br /&gt;
|A7||6845||MA6 &lt;br /&gt;
|-&lt;br /&gt;
|A6||6845||MA5 &lt;br /&gt;
|-&lt;br /&gt;
|A5||6845||MA4 &lt;br /&gt;
|-&lt;br /&gt;
|A4||6845||MA3 &lt;br /&gt;
|-&lt;br /&gt;
|A3||6845||MA2 &lt;br /&gt;
|-&lt;br /&gt;
|A2||6845||MA1 &lt;br /&gt;
|-&lt;br /&gt;
|A1||6845||MA0&lt;br /&gt;
|-&lt;br /&gt;
|A0||Gate-Array||CCLK&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CRTC generates the address, Gate-Array reads the data and converts it to pixels based on the current mode.&lt;br /&gt;
&lt;br /&gt;
== DISPTMG ==&lt;br /&gt;
&lt;br /&gt;
DISPTMG signal defines the border. When DISPTMG is &amp;quot;1&amp;quot; the border colour is output by the Gate-Array to the display. The DISPTMG can be forced using R8 (DISPTMG Skew) on type 0,3 and 4 or by setting R6=0 on type 1. It is not possible to force the DISPTMG on type 2 or 5.&lt;br /&gt;
&lt;br /&gt;
The border has higher priority than pixels but lower priority than the black colour output when HSYNC/VSYNC are active.&lt;br /&gt;
&lt;br /&gt;
== HSYNC and VSYNC ==&lt;br /&gt;
&lt;br /&gt;
On CPC, HSYNC and VSYNC from the CRTC are passed into the Gate-Array.&lt;br /&gt;
&lt;br /&gt;
When HSYNC is active Gate-Array outputs the palette colour black. If the HSYNC is set to 14 characters then black will be output for 14us.&lt;br /&gt;
&lt;br /&gt;
The HSYNC is modified before being sent to the monitor. It  happens 2us after the HSYNC from the CRTC and lasts 4us when HSYNC length is greater or equal to 6. &lt;br /&gt;
&lt;br /&gt;
If R2=46, and HSYNC width is 14 then monitor hsync starts at 48 and lasts until 51.&lt;br /&gt;
&lt;br /&gt;
On a CPC monitor, the HSYNC is rendered in &amp;quot;absolute black&amp;quot;. It is darker than the black output by the Gate-Array.&lt;br /&gt;
&lt;br /&gt;
The VSYNC is also modified before being sent to the monitor. It happens two lines* after the VSYNC from the CRTC and stay two lines (same cut rule if VSYNC is lower than 4). PAL (50Hz) does need two lines VSYNC_width, and 4us HSYNC_width.&lt;br /&gt;
&lt;br /&gt;
Using CRTC1, VSYNC width value 0 means a value of 16.&lt;br /&gt;
&lt;br /&gt;
== The 6845 Registers ==&lt;br /&gt;
&lt;br /&gt;
The Internal registers of the 6845 are:&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Register Index''||''Register Name''||''Range''||''CPC Setting''||''Notes''&lt;br /&gt;
|-&lt;br /&gt;
|0||Horizontal Total||00000000||63||Width of the screen, in characters. Should always be 63 (64 characters). 1 character == 1μs.&lt;br /&gt;
|-&lt;br /&gt;
|1||Horizontal Displayed||00000000||40||Number of characters displayed. Once horizontal character count (HCC) matches this value, DISPTMG is set to 1.&lt;br /&gt;
|-&lt;br /&gt;
|2||Horizontal Sync Position||00000000||46||When to start the HSync signal.&lt;br /&gt;
|-&lt;br /&gt;
|3||Horizontal and Vertical Sync Widths||VVVVHHHH||128+14||HSync pulse width in characters (0 means 16 on some CRTC), should always be more than 8; VSync width in scan-lines. (0 means 16 on some CRTC. Not present on all CRTCs, fixed to 16 lines on these)&lt;br /&gt;
|-&lt;br /&gt;
|4||Vertical Total||x0000000||38||Height of the screen, in characters.&lt;br /&gt;
|-&lt;br /&gt;
|5||Vertical Total Adjust||xxx00000||0||Measured in scanlines, can be used for smooth vertical scrolling on CPC.&lt;br /&gt;
|-&lt;br /&gt;
|6||Vertical Displayed||x0000000||25||Height of displayed screen in characters. Once vertical character count (VCC) matches this value, DISPTMG is set to 1.&lt;br /&gt;
|-&lt;br /&gt;
|7||Vertical Sync position||x0000000||30||When to start the VSync signal, in characters.&lt;br /&gt;
|-&lt;br /&gt;
|8||Interlace and Skew||xxxxxx00||0||00: No interlace; 01: Interlace Sync Raster Scan Mode; 10: No Interlace; 11: Interlace Sync and Video Raster Scan Mode&lt;br /&gt;
|-&lt;br /&gt;
|9||Maximum Raster Address||xxx00000||7||Maximum scan line address on CPC can hold between 0 and 7, higher values' upper bits are ignored&lt;br /&gt;
|-&lt;br /&gt;
|10||Cursor Start Raster||xBP00000||0||Cursor not used on CPC. B = Blink On/Off; P = Blink Period Control (Slow/Fast). Sets first raster row of character that cursor is on to invert.&lt;br /&gt;
|-&lt;br /&gt;
|11||Cursor End Raster||xxx00000||0||Sets last raster row of character that cursor is on to invert&lt;br /&gt;
|-&lt;br /&gt;
|12||Display Start Address (High)||xx000000||48&lt;br /&gt;
|-&lt;br /&gt;
|13||Display Start Address (Low)||00000000||0||Allows you to offset the start of screen memory for hardware scrolling, and if using memory from address &amp;amp;0000 with the firmware.&lt;br /&gt;
|-&lt;br /&gt;
|14||Cursor Address (High)||xx000000||0&lt;br /&gt;
|-&lt;br /&gt;
|15||Cursor Address (Low)||00000000||0&lt;br /&gt;
|-&lt;br /&gt;
|16||Light Pen Address (High)||xx000000||||Read Only&lt;br /&gt;
|-&lt;br /&gt;
|17||Light Pen Address (Low)||00000000||||Read Only&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
registers 18-31 read as 0, on type 0 and 2.&lt;br /&gt;
registers 18-30 read as 0 on type1, register 31 reads as 0x0ff.&lt;br /&gt;
&lt;br /&gt;
Details about Reg. 12 and Reg. 13 specifically:&lt;br /&gt;
&lt;br /&gt;
  .------- REG 12 --------.   .------- REG 13 --------.&lt;br /&gt;
  |                       |   |                       |&lt;br /&gt;
   15 14 13 12 11 10 09 08     07 06 05 04 03 02 01 00&lt;br /&gt;
  .--.--.--.--.--.--.--.--.   .--.--.--.--.--.--.--.--.&lt;br /&gt;
  |X |X |  |  |  |  |  |  |   |  |  |  |  |  |  |  |  |&lt;br /&gt;
  '--'--'--'--'--'--'--'--'   '--'--'--'--'--'--'--'--'&lt;br /&gt;
        '--.--'--.--'---------------.-----------------'&lt;br /&gt;
           |     |                  |&lt;br /&gt;
           |     |                  '------&amp;gt; Offset for setting&lt;br /&gt;
           |     |                           videoram &lt;br /&gt;
           |     |                           (1024 positions)&lt;br /&gt;
           |     |                           Bits 0..9&lt;br /&gt;
           |     |&lt;br /&gt;
           |     '-------------------------&amp;gt; Video Buffer : note (1)&lt;br /&gt;
           |&lt;br /&gt;
           '-------------------------------&amp;gt; Video Page : note (2)&lt;br /&gt;
  note (1)                 note (2)&lt;br /&gt;
  .--.--.--------------.  .--.--.---------------.&lt;br /&gt;
  |11|10| Video Buffer |  |13|12|   Video Page  |&lt;br /&gt;
  |--|--|--------------|  |--|--|---------------|&lt;br /&gt;
  | 0| 0|     16Ko     |  | 0| 0|  0000 - 3FFF  |&lt;br /&gt;
  |--|--|--------------|  |--|--|---------------|&lt;br /&gt;
  | 0| 1|     16Ko     |  | 0| 1|  4000 - 7FFF  |&lt;br /&gt;
  |--|--|--------------|  |--|--|---------------|&lt;br /&gt;
  | 1| 0|     16Ko     |  | 1| 0|  8000 - BFFF  |&lt;br /&gt;
  |--|--|--------------|  |--|--|---------------|&lt;br /&gt;
  | 1| 1|     32Ko     |  | 1| 1|  C000 - FFFF  |&lt;br /&gt;
  '--'--'--------------'  '--'--'---------------'&lt;br /&gt;
&lt;br /&gt;
So, it's possible to use 32KB screen size (used for [[Programming:Overscan|overscan]]) by setting bits 11 and 10 both to 1 (of Register 12).&lt;br /&gt;
&lt;br /&gt;
== CRTC Differences ==&lt;br /&gt;
&lt;br /&gt;
In this section I will attempt to identify all the differences between each CRTC. &lt;br /&gt;
&lt;br /&gt;
The following tables list the functions that can be accessed for each type: &lt;br /&gt;
&lt;br /&gt;
Type 0&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''b1''||''b0''||''Function''||''Read/Write'' &lt;br /&gt;
|-&lt;br /&gt;
|0||0||Select internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|0||1||Write to selected internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|1||0||-||- &lt;br /&gt;
|-&lt;br /&gt;
|1||1||Read from selected internal 6845 register||Read only &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Type 1&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''b1''||''b0''||''Function''||''Read/Write'' &lt;br /&gt;
|-&lt;br /&gt;
|0||0||Select internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|0||1||Write to selected internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|1||0||Read Status Register||Read Only &lt;br /&gt;
|-&lt;br /&gt;
|1||1||Read from selected internal 6845 register||Read only &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Type 2&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''b1''||''b0''||''Function''||''Read/Write'' &lt;br /&gt;
|-&lt;br /&gt;
|0||0||Select internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|0||1||Write to selected internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|1||0||-||- &lt;br /&gt;
|-&lt;br /&gt;
|1||1||Read from selected internal 6845 register||Read only &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Type 3 and 4&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''b1''||''b0''||''Function''||''Read/Write'' &lt;br /&gt;
|-&lt;br /&gt;
|0||0||Select internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|0||1||Write to selected internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|1||0||Read from selected internal 6845 register||Read Only &lt;br /&gt;
|-&lt;br /&gt;
|1||1||Read from selected internal 6845 register||Read only &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is not possible to read from all the internal registers, this table shows the read/write status of each register for each type: &lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|rowspan=2|''Register Index''||rowspan=2|''Register Name''||colspan=4|''Type'' &lt;br /&gt;
|-&lt;br /&gt;
|0||1||2||3||4&lt;br /&gt;
|-&lt;br /&gt;
|0||Horizontal Total||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|1||Horizontal Displayed||Write Only||Write Only||Write Only||(note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|2||Horizontal Sync Position||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|3||Horizontal and Vertical Sync Widths||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|4||Vertical Total||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|5||Vertical Total Adjust||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|6||Vertical Displayed||Write Only||Write Only||Write Only||(note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|7||Vertical Sync position||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|8||Interlace and Skew||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|9||Maximum Raster Address||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|10||Cursor Start Raster||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|11||Cursor End Raster||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|12||Display Start Address (High)||Read/Write||Write Only||Write Only||Read/Write (note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|13||Display Start Address (Low)||Read/Write||Write Only||Write Only||Read/Write (note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|14||Cursor Address (High)||Read/Write||Read/Write||Read/Write||Read/Write (note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|15||Cursor Address (Low)||Read/Write||Read/Write||Read/Write||Read/Write (note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|16||Light Pen Address (High)||Read Only||Read Only||Read Only||Read Only (note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|17||Light Pen Address (Low)||Read Only||Read Only||Read Only||Read Only (note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
&lt;br /&gt;
1. On type 0 and 1, if a Write Only register is read from, &amp;quot;0&amp;quot; is returned. &lt;br /&gt;
&lt;br /&gt;
2. See the document &amp;quot;Extra CPC Plus Hardware Information&amp;quot; for more details.&lt;br /&gt;
&lt;br /&gt;
3. CRTC type 4 is the same as CRTC type 3. The registers also repeat as they do on the type 3.&lt;br /&gt;
&lt;br /&gt;
== Horizontal and Vertical Sync (R3) ==&lt;br /&gt;
&lt;br /&gt;
UM6845:&lt;br /&gt;
&lt;br /&gt;
Bits 7..4 define Vertical Sync Width. If 0 is programmed this gives 16 lines of VSYNC.&lt;br /&gt;
Bits 3..0 define Horizontal Sync Width. If 0 is programmed no HSYNC is generated.&lt;br /&gt;
&lt;br /&gt;
UM6845R:&lt;br /&gt;
&lt;br /&gt;
Bits 7..4 are ignored. Vertical Sync is fixed at 16 lines.&lt;br /&gt;
Bits 3..0 define Horizontal Sync Width. If 0 is programmed no HSYNC is generated.&lt;br /&gt;
&lt;br /&gt;
MC6845:&lt;br /&gt;
&lt;br /&gt;
Bits 7..4 are ignored. Vertical Sync is fixed at 16 lines.&lt;br /&gt;
Bits 3..0 define Horizontal Sync Width. If 0 is programmed this gives a HSYNC width of 16.&lt;br /&gt;
&lt;br /&gt;
Pre-ASIC/ASIC:&lt;br /&gt;
&lt;br /&gt;
Bits 7..4 define Vertical Sync Width. If 0 is programmed this gives 16 lines of VSYNC.&lt;br /&gt;
Bits 3..0 define Horizontal Sync Width. If 0 is programmed this gives a HSYNC width of 16.&lt;br /&gt;
&lt;br /&gt;
== UM6845R and R31 ==&lt;br /&gt;
&lt;br /&gt;
R31 is described in the UM6845R documentation as &amp;quot;Dummy Register&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Its use is described in the documentation for the Rockwell R6545 in combination with R18, R19 and R8 and the Status Register.&lt;br /&gt;
&lt;br /&gt;
In the UM6845R it appears to have no effect. Reading and writing does nothing. Reading it returns 0x0ff.&lt;br /&gt;
&lt;br /&gt;
R31 doesn't exist on types 0,2,3.&lt;br /&gt;
&lt;br /&gt;
== UM6845R and R12/R13 ==&lt;br /&gt;
&lt;br /&gt;
The UM6845R differs to other CRTC in respect of R12/R13. &lt;br /&gt;
&lt;br /&gt;
When VCC=0, R12/R13 is re-read at the start of each line. R12/R13 can therefore be changed for each scanline when VCC=0. &lt;br /&gt;
&lt;br /&gt;
Just like other CRTCs when RC==(R9-1), the current MA is captured for the next char-line.&lt;br /&gt;
&lt;br /&gt;
In demos to make a display compatible with all CRTCs program R12/R13 when VCC!=0. This will then take effect at the next frame start.&lt;br /&gt;
&lt;br /&gt;
== UM6845R status register ==&lt;br /&gt;
&lt;br /&gt;
The UM6845R has a status register that can be read using port &amp;amp;BExx.&lt;br /&gt;
&lt;br /&gt;
Bit 6 is set to 1 if there is a strobe input to the /LPEN signal. It is cleared to 0 when either R17 or R16 (LPEN address) of the CRTC are read. It signals there is a valid LPEN input. On my CPC (arnoldemu) with UM6845R, it is triggered at power on, R17 and R16 have the values 0 when read.&lt;br /&gt;
&lt;br /&gt;
Bit 5 is set to 1 when CRTC is in &amp;quot;vertical blanking&amp;quot;. Vertical blanking is when the vertical border is active. i.e. VCC&amp;gt;=R6. &lt;br /&gt;
&lt;br /&gt;
It is cleared when the frame is started (VCC=0). It is not directly related to the DISPTMG output (used by the CPC to display the border colour) because that output is a combination of horizontal and vertical blanking.&lt;br /&gt;
This bit will be 0 when pixels are being displayed.&lt;br /&gt;
&lt;br /&gt;
All the other bits read as 0 and don't have any function.&lt;br /&gt;
&lt;br /&gt;
== Datasheets ==&lt;br /&gt;
&lt;br /&gt;
* [[Media:hd6845.hitachi.pdf|HD6845S (Hitachi) (aka type 0)]]&lt;br /&gt;
* [[Media:Um6845.umc.pdf|UM6845 (UMC)  (aka type 0)]]&lt;br /&gt;
* [[Media:Um6845r.umc.pdf|UM6845R (UMC)  (aka type 1)]]&lt;br /&gt;
* [[Media:Mc6845.motorola.pdf|MC6845 (Motorola) (aka type 2)]]&lt;br /&gt;
&lt;br /&gt;
* [[VHDL implementation of the 6845]]&lt;br /&gt;
&lt;br /&gt;
== Clones ==&lt;br /&gt;
* [CM607P   a Bulgarian clone made in Pravetz factory]&lt;br /&gt;
* [EF6845P  by Thomson Semiconductors]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tools about CRTC ==&lt;br /&gt;
&lt;br /&gt;
*  [http://www.cpcwiki.eu/imgs/9/99/Elmar_Krieger-SPECIAL_EFFECTS.dsk  some BASIC tools to detect CRTC types 0-1-2 and show some effects - by [[Elmar Krieger]] ]     (DSK for Emulators)&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/6845 Wikipedia on the CRTC]&lt;br /&gt;
* [http://www.grimware.org/doku.php/documentations/devices/crtc CRTCs on grimware]&lt;br /&gt;
&lt;br /&gt;
==Related pages==&lt;br /&gt;
&lt;br /&gt;
*[[Gate Array]]&lt;br /&gt;
&lt;br /&gt;
*[[ASIC]]&lt;br /&gt;
&lt;br /&gt;
*[[Video modes]]&lt;br /&gt;
&lt;br /&gt;
*[[Synchronising with the CRTC and display]] : technic and details on the relationship between Gate Array and CRTC.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]] [[Category:CPC Internal Components]] [[Category:Programming]] [[Category:Datasheet]] [[Category:Graphic]]&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=User:DavidL&amp;diff=102425</id>
		<title>User:DavidL</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=User:DavidL&amp;diff=102425"/>
				<updated>2018-12-09T18:13:08Z</updated>
		
		<summary type="html">&lt;p&gt;DavidL: Création&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi.&lt;br /&gt;
&lt;br /&gt;
I'm a French software development engineer with several years experience.&lt;br /&gt;
&lt;br /&gt;
I'm currently developing a generic machine emulator, which currently successfully runs a complete Amstrad PC1512. I didn't find any software that could not run on the emulated machine unless it would not run on the original machine.&lt;br /&gt;
I started creating components to emulate the CPC464. This site is a good source for documentation.&lt;br /&gt;
&lt;br /&gt;
[[User:DavidL|DavidL]] ([[User talk:DavidL|talk]])&lt;/div&gt;</summary>
		<author><name>DavidL</name></author>	</entry>

	</feed>