<?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=JonB</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=JonB"/>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php/Special:Contributions/JonB"/>
		<updated>2026-08-29T03:32:24Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=116682</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=116682"/>
				<updated>2024-06-13T11:43:23Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Downloads */ New .dsk file link added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus version 1.14 and higher, and Locoscript only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* I have not provided driver support for uIDE-16 on the CPC 6128. However, please see the [https://www.cpcwiki.eu/forum/applications/hdcpm-boot-and-run-cpm-plus-from-hard-disk/ HDCPM thread]&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/file/d/1bkyPYWxwDtzXt5IiABLiGn9UF9OHf0t8/view?usp=sharing || Experimental .dsk (floppy drive image) containing driver .FID and utilities, for PCWs with GOTEK drives. || &lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/file/d/1HaWvlNjYw6uwRpdOBd-Tokw0SgrVJanO/view?usp=share_link || Intertec Superbrain I and II QD uIDE driver v0.12 package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable. A special variant for the MX4 backplane is available - see below.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines with MX4 backplane===&lt;br /&gt;
The 6128 expansion port adapter requires a 50 way right angled male IDC box connector fitted to the expansion port adapter. This allows it to stand up on the MX4 backplane. The main caveat is that the adapter is inserted the other way round to the other MX4 boards, so some rearrangement of your MX4 boards may be necessary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter_2.jpg|thumb|Close up of the 6128 adapter board showing correct orientation of the angled 50 way IDC box header.]]&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter.jpg|thumb|Correct way to fit the 6128 adapter board to the MX4 backplane. Note the adapter's component side facing to the left, whereas the next adjacent card's component side can be seen facing to the right.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
For uIDE-16 users with HDCPM, do not use XFORMAT - follow HDCPM documentation for disk preparation.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
uiDE on the CPC6128 is supported by [[HDCPM]]. Kudos to d_kef!&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
I hgave been advised that I am not allowed to display prices on a Wiki page, but I am allowed to link to them.&lt;br /&gt;
&lt;br /&gt;
Consequently, you can find prices for these boards on the CPCWiki forum [https://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/msg235808/#msg235808 here].&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for '''personal purposes only''', on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Use for any commercial purpose is explicitly forbidden, this includes reverse engineering, selling or reselling the design or boards.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
* CPCWiki member d_kef, who has written [[HDCPM]] which allows uIDE-16 to work under CPM Plus on the CPC6128.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=116633</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=116633"/>
				<updated>2024-06-12T09:42:04Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Downloads */ Added .dsk (floppy drive image for PCW GOTEK users)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus version 1.14 and higher, and Locoscript only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* I have not provided driver support for uIDE-16 on the CPC 6128. However, please see the [https://www.cpcwiki.eu/forum/applications/hdcpm-boot-and-run-cpm-plus-from-hard-disk/ HDCPM thread]&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/file/d/1WCfhRhgKegTftMCBFAsAnfw6QWJBUg3o/view?usp=drive_link || Experimental .dsk (floppy drive image) containing driver .FID and utilities, for PCWs with GOTEK drives. || &lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/file/d/1HaWvlNjYw6uwRpdOBd-Tokw0SgrVJanO/view?usp=share_link || Intertec Superbrain I and II QD uIDE driver v0.12 package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable. A special variant for the MX4 backplane is available - see below.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines with MX4 backplane===&lt;br /&gt;
The 6128 expansion port adapter requires a 50 way right angled male IDC box connector fitted to the expansion port adapter. This allows it to stand up on the MX4 backplane. The main caveat is that the adapter is inserted the other way round to the other MX4 boards, so some rearrangement of your MX4 boards may be necessary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter_2.jpg|thumb|Close up of the 6128 adapter board showing correct orientation of the angled 50 way IDC box header.]]&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter.jpg|thumb|Correct way to fit the 6128 adapter board to the MX4 backplane. Note the adapter's component side facing to the left, whereas the next adjacent card's component side can be seen facing to the right.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
For uIDE-16 users with HDCPM, do not use XFORMAT - follow HDCPM documentation for disk preparation.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
uiDE on the CPC6128 is supported by [[HDCPM]]. Kudos to d_kef!&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
I hgave been advised that I am not allowed to display prices on a Wiki page, but I am allowed to link to them.&lt;br /&gt;
&lt;br /&gt;
Consequently, you can find prices for these boards on the CPCWiki forum [https://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/msg235808/#msg235808 here].&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for '''personal purposes only''', on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Use for any commercial purpose is explicitly forbidden, this includes reverse engineering, selling or reselling the design or boards.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
* CPCWiki member d_kef, who has written [[HDCPM]] which allows uIDE-16 to work under CPM Plus on the CPC6128.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114394</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114394"/>
				<updated>2024-02-21T18:12:38Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Using the formatter XFORMAT.COM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus version 1.14 and higher, and Locoscript only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* I have not provided driver support for uIDE-16 on the CPC 6128. However, please see the [https://www.cpcwiki.eu/forum/applications/hdcpm-boot-and-run-cpm-plus-from-hard-disk/ HDCPM thread]&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/file/d/1HaWvlNjYw6uwRpdOBd-Tokw0SgrVJanO/view?usp=share_link || Intertec Superbrain I and II QD uIDE driver v0.12 package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable. A special variant for the MX4 backplane is available - see below.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines with MX4 backplane===&lt;br /&gt;
The 6128 expansion port adapter requires a 50 way right angled male IDC box connector fitted to the expansion port adapter. This allows it to stand up on the MX4 backplane. The main caveat is that the adapter is inserted the other way round to the other MX4 boards, so some rearrangement of your MX4 boards may be necessary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter_2.jpg|thumb|Close up of the 6128 adapter board showing correct orientation of the angled 50 way IDC box header.]]&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter.jpg|thumb|Correct way to fit the 6128 adapter board to the MX4 backplane. Note the adapter's component side facing to the left, whereas the next adjacent card's component side can be seen facing to the right.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
For uIDE-16 users with HDCPM, do not use XFORMAT - follow HDCPM documentation for disk preparation.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
uiDE on the CPC6128 is supported by [[HDCPM]]. Kudos to d_kef!&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
I hgave been advised that I am not allowed to display prices on a Wiki page, but I am allowed to link to them.&lt;br /&gt;
&lt;br /&gt;
Consequently, you can find prices for these boards on the CPCWiki forum [https://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/msg235808/#msg235808 here].&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for '''personal purposes only''', on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Use for any commercial purpose is explicitly forbidden, this includes reverse engineering, selling or reselling the design or boards.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
* CPCWiki member d_kef, who has written [[HDCPM]] which allows uIDE-16 to work under CPM Plus on the CPC6128.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114393</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114393"/>
				<updated>2024-02-21T18:05:10Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Feature list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus version 1.14 and higher, and Locoscript only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* I have not provided driver support for uIDE-16 on the CPC 6128. However, please see the [https://www.cpcwiki.eu/forum/applications/hdcpm-boot-and-run-cpm-plus-from-hard-disk/ HDCPM thread]&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/file/d/1HaWvlNjYw6uwRpdOBd-Tokw0SgrVJanO/view?usp=share_link || Intertec Superbrain I and II QD uIDE driver v0.12 package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable. A special variant for the MX4 backplane is available - see below.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines with MX4 backplane===&lt;br /&gt;
The 6128 expansion port adapter requires a 50 way right angled male IDC box connector fitted to the expansion port adapter. This allows it to stand up on the MX4 backplane. The main caveat is that the adapter is inserted the other way round to the other MX4 boards, so some rearrangement of your MX4 boards may be necessary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter_2.jpg|thumb|Close up of the 6128 adapter board showing correct orientation of the angled 50 way IDC box header.]]&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter.jpg|thumb|Correct way to fit the 6128 adapter board to the MX4 backplane. Note the adapter's component side facing to the left, whereas the next adjacent card's component side can be seen facing to the right.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
For uIDE-16 users with HDCPM, do not use XFORMAT - follow HDCPM documentation for disk prepatation.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
uiDE on the CPC6128 is supported by [[HDCPM]]. Kudos to d_kef!&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
I hgave been advised that I am not allowed to display prices on a Wiki page, but I am allowed to link to them.&lt;br /&gt;
&lt;br /&gt;
Consequently, you can find prices for these boards on the CPCWiki forum [https://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/msg235808/#msg235808 here].&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for '''personal purposes only''', on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Use for any commercial purpose is explicitly forbidden, this includes reverse engineering, selling or reselling the design or boards.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
* CPCWiki member d_kef, who has written [[HDCPM]] which allows uIDE-16 to work under CPM Plus on the CPC6128.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114174</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114174"/>
				<updated>2024-02-08T12:32:02Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Prices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* I have not provided driver support for uIDE-16 on the CPC 6128. However, please see the [https://www.cpcwiki.eu/forum/applications/hdcpm-boot-and-run-cpm-plus-from-hard-disk/ HDCPM thread]&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/file/d/1HaWvlNjYw6uwRpdOBd-Tokw0SgrVJanO/view?usp=share_link || Intertec Superbrain I and II QD uIDE driver v0.12 package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable. A special variant for the MX4 backplane is available - see below.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines with MX4 backplane===&lt;br /&gt;
The 6128 expansion port adapter requires a 50 way right angled male IDC box connector fitted to the expansion port adapter. This allows it to stand up on the MX4 backplane. The main caveat is that the adapter is inserted the other way round to the other MX4 boards, so some rearrangement of your MX4 boards may be necessary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter_2.jpg|thumb|Close up of the 6128 adapter board showing correct orientation of the angled 50 way IDC box header.]]&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter.jpg|thumb|Correct way to fit the 6128 adapter board to the MX4 backplane. Note the adapter's component side facing to the left, whereas the next adjacent card's component side can be seen facing to the right.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
For uIDE-16 users with HDCPM, do not use XFORMAT - follow HDCPM documentation for disk prepatation.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
uiDE on the CPC6128 is supported by [[HDCPM]]. Kudos to d_kef!&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
I hgave been advised that I am not allowed to display prices on a Wiki page, but I am allowed to link to them.&lt;br /&gt;
&lt;br /&gt;
Consequently, you can find prices for these boards on the CPCWiki forum [https://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/msg235808/#msg235808 here].&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for '''personal purposes only''', on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Use for any commercial purpose is explicitly forbidden, this includes reverse engineering, selling or reselling the design or boards.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
* CPCWiki member d_kef, who has written [[HDCPM]] which allows uIDE-16 to work under CPM Plus on the CPC6128.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114173</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114173"/>
				<updated>2024-02-08T12:30:43Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* More information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* I have not provided driver support for uIDE-16 on the CPC 6128. However, please see the [https://www.cpcwiki.eu/forum/applications/hdcpm-boot-and-run-cpm-plus-from-hard-disk/ HDCPM thread]&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/file/d/1HaWvlNjYw6uwRpdOBd-Tokw0SgrVJanO/view?usp=share_link || Intertec Superbrain I and II QD uIDE driver v0.12 package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable. A special variant for the MX4 backplane is available - see below.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines with MX4 backplane===&lt;br /&gt;
The 6128 expansion port adapter requires a 50 way right angled male IDC box connector fitted to the expansion port adapter. This allows it to stand up on the MX4 backplane. The main caveat is that the adapter is inserted the other way round to the other MX4 boards, so some rearrangement of your MX4 boards may be necessary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter_2.jpg|thumb|Close up of the 6128 adapter board showing correct orientation of the angled 50 way IDC box header.]]&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter.jpg|thumb|Correct way to fit the 6128 adapter board to the MX4 backplane. Note the adapter's component side facing to the left, whereas the next adjacent card's component side can be seen facing to the right.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
For uIDE-16 users with HDCPM, do not use XFORMAT - follow HDCPM documentation for disk prepatation.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
uiDE on the CPC6128 is supported by [[HDCPM]]. Kudos to d_kef!&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
You can find prices for these boards on the CPCWiki forum [https://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/msg235808/#msg235808 here].&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for '''personal purposes only''', on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Use for any commercial purpose is explicitly forbidden, this includes reverse engineering, selling or reselling the design or boards.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
* CPCWiki member d_kef, who has written [[HDCPM]] which allows uIDE-16 to work under CPM Plus on the CPC6128.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114106</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114106"/>
				<updated>2024-02-03T10:51:38Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* CPC 6128 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* I have not provided driver support for uIDE-16 on the CPC 6128. However, please see the [https://www.cpcwiki.eu/forum/applications/hdcpm-boot-and-run-cpm-plus-from-hard-disk/ HDCPM thread]&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/file/d/1HaWvlNjYw6uwRpdOBd-Tokw0SgrVJanO/view?usp=share_link || Intertec Superbrain I and II QD uIDE driver v0.12 package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable. A special variant for the MX4 backplane is available - see below.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines with MX4 backplane===&lt;br /&gt;
The 6128 expansion port adapter requires a 50 way right angled male IDC box connector fitted to the expansion port adapter. This allows it to stand up on the MX4 backplane. The main caveat is that the adapter is inserted the other way round to the other MX4 boards, so some rearrangement of your MX4 boards may be necessary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter_2.jpg|thumb|Close up of the 6128 adapter board showing correct orientation of the angled 50 way IDC box header.]]&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter.jpg|thumb|Correct way to fit the 6128 adapter board to the MX4 backplane. Note the adapter's component side facing to the left, whereas the next adjacent card's component side can be seen facing to the right.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
For uIDE-16 users with HDCPM, do not use XFORMAT - follow HDCPM documentation for disk prepatation.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
uiDE on the CPC6128 is supported by [[HDCPM]]. Kudos to d_kef!&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for '''personal purposes only''', on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Use for any commercial purpose is explicitly forbidden, this includes reverse engineering, selling or reselling the design or boards.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
* CPCWiki member d_kef, who has written [[HDCPM]] which allows uIDE-16 to work under CPM Plus on the CPC6128.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114105</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114105"/>
				<updated>2024-02-03T09:57:17Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* CPC6128 machines with MX4 backplane */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* I have not provided driver support for uIDE-16 on the CPC 6128. However, please see the [https://www.cpcwiki.eu/forum/applications/hdcpm-boot-and-run-cpm-plus-from-hard-disk/ HDCPM thread]&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/file/d/1HaWvlNjYw6uwRpdOBd-Tokw0SgrVJanO/view?usp=share_link || Intertec Superbrain I and II QD uIDE driver v0.12 package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines with MX4 backplane===&lt;br /&gt;
The 6128 expansion port adapter requires a 50 way right angled male IDC box connector fitted to the expansion port adapter. This allows it to stand up on the MX4 backplane. The main caveat is that the adapter is inserted the other way round to the other MX4 boards, so some rearrangement of your MX4 boards may be necessary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter_2.jpg|thumb|Close up of the 6128 adapter board showing correct orientation of the angled 50 way IDC box header.]]&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter.jpg|thumb|Correct way to fit the 6128 adapter board to the MX4 backplane. Note the adapter's component side facing to the left, whereas the next adjacent card's component side can be seen facing to the right.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
For uIDE-16 users with HDCPM, do not use XFORMAT - follow HDCPM documentation for disk prepatation.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
uiDE on the CPC6128 is supported by [[HDCPM]]. Kudos to d_kef!&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for '''personal purposes only''', on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Use for any commercial purpose is explicitly forbidden, this includes reverse engineering, selling or reselling the design or boards.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
* CPCWiki member d_kef, who has written [[HDCPM]] which allows uIDE-16 to work under CPM Plus on the CPC6128.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114104</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114104"/>
				<updated>2024-02-03T09:55:03Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* CPC6128 machines with MX4 backplane */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* I have not provided driver support for uIDE-16 on the CPC 6128. However, please see the [https://www.cpcwiki.eu/forum/applications/hdcpm-boot-and-run-cpm-plus-from-hard-disk/ HDCPM thread]&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/file/d/1HaWvlNjYw6uwRpdOBd-Tokw0SgrVJanO/view?usp=share_link || Intertec Superbrain I and II QD uIDE driver v0.12 package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines with MX4 backplane===&lt;br /&gt;
The 6128 expansion port adapter requires a 50 way right angled male IDC box connector fitted to the expansion port adapter. This allows it to stand up on the MX4 backplane. The main caveat is that the adapter is inserted the other way round to the other MX4 boards, so some rearrangement of your MX4 boards may be necessary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter_2.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|[[File:UIDE-16_MX4_adapter.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
For uIDE-16 users with HDCPM, do not use XFORMAT - follow HDCPM documentation for disk prepatation.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
uiDE on the CPC6128 is supported by [[HDCPM]]. Kudos to d_kef!&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for '''personal purposes only''', on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Use for any commercial purpose is explicitly forbidden, this includes reverse engineering, selling or reselling the design or boards.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
* CPCWiki member d_kef, who has written [[HDCPM]] which allows uIDE-16 to work under CPM Plus on the CPC6128.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:UIDE-16_MX4_adapter.jpg&amp;diff=114103</id>
		<title>File:UIDE-16 MX4 adapter.jpg</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:UIDE-16_MX4_adapter.jpg&amp;diff=114103"/>
				<updated>2024-02-03T09:54:33Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: Showing the 6128 adapter board attached to the MX4 backplane. Note the component side facing to the left, whereas the next adjacent card's solder side can be seen facing to the left.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Showing the 6128 adapter board attached to the MX4 backplane. Note the component side facing to the left, whereas the next adjacent card's solder side can be seen facing to the left.&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:UIDE-16_MX4_adapter_2.jpg&amp;diff=114102</id>
		<title>File:UIDE-16 MX4 adapter 2.jpg</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:UIDE-16_MX4_adapter_2.jpg&amp;diff=114102"/>
				<updated>2024-02-03T09:52:29Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: Close up of the 6128 adapter board showing correct orientaion of the angled 50 way IDC box header.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Close up of the 6128 adapter board showing correct orientaion of the angled 50 way IDC box header.&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114101</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114101"/>
				<updated>2024-02-03T09:50:31Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Correct way to connect the uIDE boards to the computer's expansion port */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* I have not provided driver support for uIDE-16 on the CPC 6128. However, please see the [https://www.cpcwiki.eu/forum/applications/hdcpm-boot-and-run-cpm-plus-from-hard-disk/ HDCPM thread]&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/file/d/1HaWvlNjYw6uwRpdOBd-Tokw0SgrVJanO/view?usp=share_link || Intertec Superbrain I and II QD uIDE driver v0.12 package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines with MX4 backplane===&lt;br /&gt;
The 6128 expansion port adapter requires a 50 way right angled male IDC box connector fitted to the expansion port adapter. This allows it to stand up on the MX4 backplane. The main caveat is that the adapter is inserted the other way round to the other MX4 boards, so some rearrangement of your MX4 boards may be necessary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
For uIDE-16 users with HDCPM, do not use XFORMAT - follow HDCPM documentation for disk prepatation.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
uiDE on the CPC6128 is supported by [[HDCPM]]. Kudos to d_kef!&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for '''personal purposes only''', on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Use for any commercial purpose is explicitly forbidden, this includes reverse engineering, selling or reselling the design or boards.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
* CPCWiki member d_kef, who has written [[HDCPM]] which allows uIDE-16 to work under CPM Plus on the CPC6128.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Peripherals&amp;diff=114083</id>
		<title>Peripherals</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Peripherals&amp;diff=114083"/>
				<updated>2024-02-01T10:33:41Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Hard Disc Drives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''You can also check the Category : Peripherals for a complete list of CPCwiki pages on the matter.'''&lt;br /&gt;
&lt;br /&gt;
* [[I/O Port Summary]]&lt;br /&gt;
&lt;br /&gt;
''Please try to keep things in alphabetical order.''&lt;br /&gt;
&lt;br /&gt;
== Built-in Peripherals ==&lt;br /&gt;
&lt;br /&gt;
=== Built-in Chipset ===&lt;br /&gt;
&lt;br /&gt;
* [[765 FDC]] - Floppy Disc Controller&lt;br /&gt;
* [[8255]] - PIO - I/O controller&lt;br /&gt;
* [[Arnold V Specs Revised]] - Arnold V (CPC+) Technical Specification&lt;br /&gt;
* [[AY-3-8912]] - Sound chip / keyboard controller&lt;br /&gt;
* [[CRTC]] - Video chip&lt;br /&gt;
* [[Gate Array]] - Custom chip (frequency generation, colors, bank switching)&lt;br /&gt;
* [[Power Supply for CPC and CPC plus]]&lt;br /&gt;
* [[Printer Port]]&lt;br /&gt;
&lt;br /&gt;
=== Built-in connectors: pinout ===&lt;br /&gt;
&lt;br /&gt;
* [[Connector:2nd disc drive (CPC664, CPC6128, CPC6128+)|2nd disc drive (CPC664, CPC6128, CPC6128+)]]&lt;br /&gt;
* [[Connector:Analogue joystick (CPC Plus only)|Analogue joystick (CPC Plus only)]]&lt;br /&gt;
* [[Connector:Aux socket (CPC Plus only)|Aux socket (CPC Plus only)]] (Lightgun)&lt;br /&gt;
* [[Connector:Cartridge Slot (CPC Plus only)|Cartridge Slot (CPC Plus only)]]&lt;br /&gt;
* [[Connector:Cassette recorder|Cassette recorder]]&lt;br /&gt;
* [[Connector:Digital joystick|Digital joystick]]&lt;br /&gt;
* [[Connector:Expansion port|Expansion port]]&lt;br /&gt;
* [[Connector:Monitor|Monitor]]&lt;br /&gt;
* [[Connector:Printer port|Printer port]]&lt;br /&gt;
* [[Connector:Stereo sound|Stereo sound]]&lt;br /&gt;
&lt;br /&gt;
=== Built-in Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[BIOS Functions]]&lt;br /&gt;
* [[Locomotive BASIC]] (reference for BASIC commands, functions and error messages)&lt;br /&gt;
* [[Technical information about Locomotive BASIC]] (encoding of BASIC programs in memory)&lt;br /&gt;
&lt;br /&gt;
== Co-processor Interfaces ==&lt;br /&gt;
* [[CPC-Cplink]] - a card and software libraries allowing Raspberry Pi, Arduino or other processors to be connected directly to the CPC&lt;br /&gt;
&lt;br /&gt;
== Data transfer ==&lt;br /&gt;
&lt;br /&gt;
=== Modems ===&lt;br /&gt;
&lt;br /&gt;
* [[Cirkit_Prestel_Link_Amstrad_Interface]] (acoustic coupler bundled with [[Cirkit serial interface]]) ([[Cirkit]])&lt;br /&gt;
* [[Commstar v21/23 modem]] ([[PACE]])&lt;br /&gt;
* [[Data Research CH301S modem]] (greek company)&lt;br /&gt;
* [[Digitelec DTL 2000/2100 Modem]]&lt;br /&gt;
* [[EPTA modem]] (sold by Greek mag ΕΠΤΑ)&lt;br /&gt;
* [[KDS Communicator 104]] (connects directly to expansion port) ([[KDS Electronics]])&lt;br /&gt;
* [[Loritel]] (for french Minitel) ([[Loriciel|Loriciels]])&lt;br /&gt;
* [[Mini-Max Modem|KDS Mini-Max Modem]] (connects via RS232 interface) ([[KDS Electronics]])&lt;br /&gt;
* [[MicroLink Dual-Speed Modem]] ([[MicroLink]]) [[File:Microlink.pdf|Mircolink Manual]] and [[File:Micronet.pdf|Micronet manual]], provided by ''Spookspring''&lt;br /&gt;
* [[MicroLink Multi-Speed Modem]] ([[MicroLink]])&lt;br /&gt;
* [[Nightingale_modem]] ([[PACE]])&lt;br /&gt;
* [[Schneider BTX Modul]] (for German Bildschirmtext) ([[Schneider]])&lt;br /&gt;
&lt;br /&gt;
=== Serial Interfaces ===&lt;br /&gt;
&lt;br /&gt;
* ([[RS232|overview of RS232 interfaces]])&lt;br /&gt;
* [[Albireo]] (serial to USB on-board) ([[PulkoTronics]] / DIY)&lt;br /&gt;
* [[Aleste 520EX]] (a CPC clone with built-in RS232, intended for serial mouse) ([[Patisonic]])&lt;br /&gt;
* [[AMSSIO]] (four different versions) (RS232 interface) (DIY) (Martin Zacho)&lt;br /&gt;
* [[Amstrad Serial Interface]] ([[Amstrad]])&lt;br /&gt;
* [[Cirkit serial interface]] ([[Cirkit]])&lt;br /&gt;
* Cirkit twin-port serial interface (resold by [[Microstyle]])&lt;br /&gt;
* [[CPC Booster|CPC Booster/CPC Booster+]] (modern multifunction expansion, including RS232)&lt;br /&gt;
* [[CPCI RS232 Interface]] (DIY) ([[CPC Schneider International Sonderheft]])&lt;br /&gt;
* [[Data Media Disc System]] (disc drive with built-in RS232 interface) ([[Data Media]])&lt;br /&gt;
* [[KDS Electronics Serial Interface|KDS Serial Interface]] ([[KDS Electronics]])&lt;br /&gt;
* [[Panda Electronics Communications Interface Unit]] (dual RS232 plus 8bit printer port) (Panda Electronics Ltd)&lt;br /&gt;
* [[RS-232 para Amstrad]] ([[MHT Ingenieros]])&lt;br /&gt;
* [[SCA CPC Prolink]] ([[SCA Products]])&lt;br /&gt;
* [[Schneider RS232 Interface]] ([[Schneider]])&lt;br /&gt;
* [[Z80 STI RS232 interface]] compatible to the one before, DIY!&lt;br /&gt;
* [[Schneiderware V/24 Interface]] (DIY) ([[CPC Schneider International]])&lt;br /&gt;
* [[Simple RS232 for Printer usage]] (DIY) (one-directional, transmit only)&lt;br /&gt;
* [[Spectre Comms Serial Interface]] with Cage Comms software ([[Spectre Communications Ltd]])&lt;br /&gt;
* [[Vortex Disc Drives]] (disc drive/interface with optional RS232 port) ([[Vortex Computersysteme]])&lt;br /&gt;
* [[Z80-SIO dual ports RS232 interface for CPC (French)]] (DIY) (Philippe Lebel)&lt;br /&gt;
* [[Dual RS232]] ([[Timatic Systems]])&lt;br /&gt;
* [[USIFAC]] ([[ikonsgr]])&lt;br /&gt;
&lt;br /&gt;
=== Teletext ===&lt;br /&gt;
&lt;br /&gt;
* [[Teletext adaptor]] ([[Microtext Ltd.]])&lt;br /&gt;
* [[Volex TTX 2000a|Volex TTX 2000a Teletext-Telesoftware Adaptor]] (Volex Electronics)&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
&lt;br /&gt;
* [[CPC Booster|CPC Booster/CPC Booster+]]&lt;br /&gt;
* [[Virtual Net 96]] ([[Wizcat]])&lt;br /&gt;
* [[Soundplayer|Soundplayer+]] ([[Futurs']])&lt;br /&gt;
* [[Soundplayer|SoundplayerNG]] (DIY) ([[Futurs']])&lt;br /&gt;
* [[Red Box]] ([[General Information Systems]])&lt;br /&gt;
* [[CPC-ENet|CPC Ethernet Card]] ([[rpalmer]])&lt;br /&gt;
&lt;br /&gt;
== Digitizer / Scanner ==&lt;br /&gt;
&lt;br /&gt;
* [[ARA Video Digitizer]] ([[Jagot &amp;amp; Leon]])&lt;br /&gt;
* [[Electric Studio C6]] ([[Electric Studio]])&lt;br /&gt;
* [[Dart Scanner for DMP-Printers]] (the optics are attached to the printer head) ([[Dart Electronics]])&lt;br /&gt;
* [[Omni-Reader]] (Oberon International) (scanner with text recognition) (advert on ACU 1-1987, page 83)&lt;br /&gt;
* [[VIDI digitizer]] ([[Rombo Productions]])&lt;br /&gt;
&lt;br /&gt;
== Drives ==&lt;br /&gt;
&lt;br /&gt;
=== Disc Drives ===&lt;br /&gt;
&lt;br /&gt;
* [[3½&amp;quot; &amp;amp; 5¼&amp;quot; Disk Drives]]&lt;br /&gt;
* [[Amstrad Disk Drive|Amstrad DDI-1 / FD-1 Disk Drive]] ([[Amstrad]])&lt;br /&gt;
* [[Cumana 3&amp;quot; Disk Drive]] ([[Cumana]])&lt;br /&gt;
* [[Data Media Disc System]] ([[Data Media]])&lt;br /&gt;
* [[Jasmin AM5D 5 &amp;quot;1/4 floppy drive]]&lt;br /&gt;
* [[KDS 5¼&amp;quot; Disc Drive]] ([[KDS Electronics]])&lt;br /&gt;
* [[TIMDISC 5¼&amp;quot; 2nd Disc Drive]] ([[Timatic Systems]])&lt;br /&gt;
* [[F1|Vortex Disc Drives]] ([[Vortex Computersysteme|Vortex]])&lt;br /&gt;
* [[Four floppy drives with Amstrad disc interface]]&lt;br /&gt;
&lt;br /&gt;
=== Exotic Drives ===&lt;br /&gt;
&lt;br /&gt;
* [[Albireo]] (USB mass storage, SD card) ([[PulkoTronics]] / DIY)&lt;br /&gt;
* [[Codemasters CD]] (loads games from Audio CD via joystick port) ([[Codemasters]])&lt;br /&gt;
* [[X-Mass]] (IDE, uses Solid-state Disk-on-Module)&lt;br /&gt;
&lt;br /&gt;
=== Hard Disc Drives ===&lt;br /&gt;
&lt;br /&gt;
* [[CPC-IDE]] (modern) (discontinued prototype)&lt;br /&gt;
* [[Dobbertin Harddisc]] ([[Dobbertin]])&lt;br /&gt;
* [[IDE8255]] internal/extrernal IDE/CF interface ([[Yarek]])&lt;br /&gt;
* [[SYMBiFACE II]] (modern) (IDE and various other features)&lt;br /&gt;
* [[Vortex Winchester Drive]] ([[Vortex Computersysteme|Vortex]])&lt;br /&gt;
* [[IDE/8255]] external IDE Interface ([[rpalmer]])&lt;br /&gt;
* [[uIDE Universal IDE adapter cards for Z-80 computers]] (modern) ([[JonB]])&lt;br /&gt;
* [[X-Mass]] (modern) (uses solid state Disk-On-Module) ([[TotO]])&lt;br /&gt;
* [[ULIfAC]] (USB mass storage device support, and many more...)([[ikonsgr]])&lt;br /&gt;
&lt;br /&gt;
=== Drive Emulators ===&lt;br /&gt;
&lt;br /&gt;
* [[Gotek]]&lt;br /&gt;
* [[HxC Floppy Emulator]]&lt;br /&gt;
* [[SDiskEmul]]&lt;br /&gt;
* [[TFE Floppy Emulator]]&lt;br /&gt;
* [[VDrive]]&lt;br /&gt;
&lt;br /&gt;
== Hardware debuggers/Hacking devices ==&lt;br /&gt;
&lt;br /&gt;
* [[Action Replay]] (whatever snapshot) ([[Datel Electronics]])&lt;br /&gt;
* [[Demon Development Cartridge]] ([[John Morrison]])&lt;br /&gt;
* [[Disc Wizard]] (whatever snapshot) ([[Draysoft]]/[[Evesham Micros]])&lt;br /&gt;
* [[Draysoft Doubler|Doubler]] (external tape input, for tape-to-tape transfers) ([[Draysoft]]/[[Evesham Micros]])&lt;br /&gt;
* [[Hackit|Hackit / Le Hacker]] (allows to view RAM at 0040h..AF00h) ([[Siren Software]])&lt;br /&gt;
* [[Mirage Imager]] (RAM-only snapshot) (Mirage Microcomputer Limited)&lt;br /&gt;
* [[Multiface II]] (RAM-and-I/O snapshot) ([[Romantic Robot]])&lt;br /&gt;
* [[PDS development system]] (old devkit been used for commercial games) (PD Systems/Andy Glaister)&lt;br /&gt;
* [[RAM7 Cartridge Hacker]] (for CPC+/GX4000 cartridges) ([[RAM7]])&lt;br /&gt;
* [[Transtape]] (whatever snapshot) (Hard Micro)&lt;br /&gt;
&lt;br /&gt;
== Input devices ==&lt;br /&gt;
&lt;br /&gt;
=== Joysticks ===&lt;br /&gt;
&lt;br /&gt;
* [[Analog Joysticks]] (CPC Plus only)&lt;br /&gt;
* [[Digital Joysticks]]&lt;br /&gt;
* [[Amstrad JY-1/JY-2 joysticks]]&lt;br /&gt;
* [[Joystick Y-cables]]&lt;br /&gt;
&lt;br /&gt;
=== Light-Guns ===&lt;br /&gt;
&lt;br /&gt;
* [[Gunstick]] ([[MHT Ingenieros]])&lt;br /&gt;
* [[Amstrad Magnum Phaser|Magnum Light Phaser]] ([[Amstrad]] and [[Trojan]])&lt;br /&gt;
* [[Trojan Light Phazer]] ([[Trojan]]) (CPC+)&lt;br /&gt;
* [[Loriciel Phaser (West Phaser)|West Phaser]] ([[Loriciel]])&lt;br /&gt;
&lt;br /&gt;
=== Light-Pens ===&lt;br /&gt;
&lt;br /&gt;
* [[Amstrad LP-1 light pen]] (Amstrad/Amsoft/Trojan) aka Trojan CAD-Master Lightpen (Trojan)&lt;br /&gt;
* [[ASS Light-Pen]] ([[ASS]])&lt;br /&gt;
* [[Dart Light Pen]] ([[Dart Electronics]])&lt;br /&gt;
* [[Datapen]] ([[Datapen Microtechnology Ltd]])&lt;br /&gt;
* [[dk'tronics Lightpen|Dk'tronics Light Pen]] ([[Dk'tronics]])&lt;br /&gt;
* [[Happy Computer Light Pen]] (DIY from german magazine)&lt;br /&gt;
* [[Light Pen Professional / Mark II (Electric Studio)|Light Pen Professional / Mark II]] ([[Electric Studio]])&lt;br /&gt;
* [[Lindy Light Pen]] ([[Lindy]])&lt;br /&gt;
&lt;br /&gt;
=== Mouse ===&lt;br /&gt;
&lt;br /&gt;
* [[Albireo]] with USB mouse ([[PulkoTronics]] / DIY)&lt;br /&gt;
* [[AMX Mouse]] (Advanced Memory Systems)&lt;br /&gt;
* [[PS2Mouse|AMX Compatible PS/2 and USB Mouse Adapter]] (DIY)&lt;br /&gt;
* [[Atari-ST mouse adapter]] (DIY) ([[Schneider Magazin]])&lt;br /&gt;
* [[dk'tronics Mouse Interface|Dk'tronics Mouse Interface]] ([[Dk'tronics]])&lt;br /&gt;
* [[CPC-Mousepack 2.0]] (Gerdes/Centaur/Reis-ware/ASS)&lt;br /&gt;
* [[Electric Studio Mouse]] ([[Electric Studio]])&lt;br /&gt;
* [[GEOS mouse|GEOS mouse]] ([[Commodore 64|C64]])&lt;br /&gt;
* [[Genius mouse]] ([[Datel Electronics]])&lt;br /&gt;
* [[Kempston Mouse]] (Kempston)&lt;br /&gt;
* [[Marconi|Marconi trackball]]&lt;br /&gt;
* [[Serial RS232 Mouse]]&lt;br /&gt;
* [[SYMBiFACE II:PS/2 mouse|PS/2 mouse]] of [[SYMBiFACE II]]&lt;br /&gt;
* [[Wireless mouse (DIY)]] (what is this?) (added 19 August 2006 by CPCLER)&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
&lt;br /&gt;
* [[CPCKey|Attaching an AT keyboard to the CPC]]&lt;br /&gt;
* [[Grafpad II]] (Hegotron/British Micro/Grafsales)&lt;br /&gt;
* [[Graphiscop II]] (M.M.C.)&lt;br /&gt;
* [[Keyboard Membrane Repair/Replacement Guide|Keyboard Repair/Replacement]]&lt;br /&gt;
&lt;br /&gt;
== Memory expansions / ROM boxes ==&lt;br /&gt;
&lt;br /&gt;
=== Memory Expansions / RAM discs ===&lt;br /&gt;
&lt;br /&gt;
* ([[Standard Memory Expansions]])&lt;br /&gt;
* [[ANTA 64K Memory Expansion]] ([[MHT Ingenieros]])&lt;br /&gt;
* [[CPC4MB| CPC4MB - 4 MB memory expansion]] ([[Yarek]])&lt;br /&gt;
* [[c't 512 KB internal RAM expansion]] (DIY) (c't magazine)&lt;br /&gt;
* [[CPC 6320 - internal 320K for CPC 6128]] (DIY) (eto)&lt;br /&gt;
* [[Data Media Memory Expansion]] ([[Data Media]])&lt;br /&gt;
* [[Dk'tronics memory expansion‎|Dk'tronics Memory Expansion and Silicon Disc]] ([[Dk'tronics]])&lt;br /&gt;
* [[Dobbertin Memory Expansion]] ([[Dobbertin]]) - 64 KB to 512 KB RAM&lt;br /&gt;
* [[Gemini]] (Shinra - PulkoTronics) - 1MB RAM&lt;br /&gt;
* [[Inicron RAM-Box]] (Inicron) - 512 KB RAM&lt;br /&gt;
* [[Old School 512K and 1MByte RAM Expansions]] (Revaldinho) - RAM expansions built with just SRAM and 74 Series standard logic&lt;br /&gt;
*[[Universal 512K and 1MByte RAM Expansions]] (Revaldinho) - RAM expansions enabling CPC464s to run FutureOS and other 6128 only software&lt;br /&gt;
* [[Otten &amp;amp; Fecht 1 MB RAM-Disc]] ([[Otten/Fecht]])&lt;br /&gt;
* [[Phoenix M64]] - 64 KB RAM&lt;br /&gt;
* [[RAM BOX]] 512 KB memory expansion&lt;br /&gt;
* [[RAM7 2MB memory expansion]] ([[RAM7]]) - 2 MB RAM&lt;br /&gt;
* [[SYMBiFACE II]] - 512 KB RAM&lt;br /&gt;
* [[Vortex Expansions RAM card]] ([[Vortex Computersysteme|Vortex]]) - 512 KB RAM&lt;br /&gt;
* [[X-MEM]] ([[TotO]]) - 512KB RAM and 512KB ROM&lt;br /&gt;
* [[Y-MEM]] ([[TotO]]) - 512KB RAM and 512KB ROM&lt;br /&gt;
* [[Z-MEM]] ([[TotO]]) - 1MB RAM&lt;br /&gt;
&lt;br /&gt;
=== ROM Box / ROM Board ===&lt;br /&gt;
&lt;br /&gt;
* [[ACU Romboard (DIY)|ACU Romboard]] (DIY) ([[Phil Craven]]/[[Amstrad Computer User|ACU]])&lt;br /&gt;
* [[ACU Romchanger]] (DIY) ([[Phil Craven]]/[[Amstrad Computer User|ACU]]) - a CPC6128 ROM (BIOS v3, BASIC v1.1) upgrade for the CPC464&lt;br /&gt;
* [[AD1 ROM Cartridge]] ([[Arnor]])&lt;br /&gt;
* [[AMRAM]] ([[Silicon Systems]])&lt;br /&gt;
* [[AMRAM2]] ([[Silicon Systems]])&lt;br /&gt;
* [[Amstrad ROM Expander]] (DIY) (Practical Electronics/Simon Dean)&lt;br /&gt;
* [[Britannia ROM Board]] aka ROM Plus ([[Britannia Software Ltd]])&lt;br /&gt;
* [[Campursoft_ROM_Board]]&lt;br /&gt;
* [[Cirkit HX-RX1 Rom Expansion Card]] ([[Cirkit]]) (what is this?) (added  3 September 2006 by Torn) (also listed on [[Hwlist from retroisle]])&lt;br /&gt;
* [[CPC.Flash]] internal/external 4MB ROM upgrade ([[Yarek]])&lt;br /&gt;
* [[CPC GX4000-Multi EPROM Cartridge]] Use a GX cartridge for modified ROM software&lt;br /&gt;
* [[Dobbertin EPROM 224]] ([[Dobbertin]])&lt;br /&gt;
* [[FlashGordon]] ([[PulkoTronics]]) 512 KB ROM simulator using Flash, in-system programmable&lt;br /&gt;
* [[Fleet EPROM Programmer|Fleet EPROM Programmer]] (F.Kup and Fleet Microsystems Ltd.)&lt;br /&gt;
* [[FO-DOS|FO-DOS Cartridge]] - a CPC6128 ROM (BIOS v3, BASIC v1.1) upgrade for the CPC464 ([[Duchet Computers]])&lt;br /&gt;
* [[Hexam]] ([[Ace Software]])&lt;br /&gt;
* [[Honeysoft ROM Board]] ([[HoneySoft]])&lt;br /&gt;
* [[Inicron ROM-RAM-Box]] (Inicron)&lt;br /&gt;
* [[John Morrison EPROM Programmer]] ([[John Morrison]])&lt;br /&gt;
* [[KDS Sideways ROM Board]] ([[KDS Electronics]])&lt;br /&gt;
* [[LowerROM]] ([[Bryce]])&lt;br /&gt;
* [[Maplin ROM Box]] ([[Maplin]])&lt;br /&gt;
* [[MegaFlash]] (DIY - Bryce) 512 KB ROM simulator using Flash, in-system programmable&lt;br /&gt;
* [[MegaROM]] (DIY - Bryce) 128K / 256K ROMBoard&lt;br /&gt;
* [[Microgenic ROM Board]] ([[Microgenic Systems]])&lt;br /&gt;
* [[Microgenic EPROM Programmer]] ([[Microgenic Systems]])&lt;br /&gt;
* [[Microstyle RAMROM]] ([[Microstyle]])&lt;br /&gt;
* [[Microstyle ROM Board Xtra]] ([[Microstyle]])&lt;br /&gt;
* [[POKROM]] (DIY) (Electronique Radio Plans, issue 517)&lt;br /&gt;
* [[Ramcard 128]] (a ROM emulator) ([[RAM7]])&lt;br /&gt;
* Revaldinho ROM cards - open source projects&lt;br /&gt;
** [https://github.com/revaldinho/cpc_ram_expansion/wiki/CPC-Eightrom-Card EightROM Card] - an all 74 series, through-hole ROM card&lt;br /&gt;
** [https://github.com/revaldinho/cpc_ram_expansion/wiki/CPC-Sixrom-Card SixROM Card ] - a CPLD based ROM card allowing application and firmware ROM replacement&lt;br /&gt;
* [[Rombo Rombox]] ([[Rombo Productions]])&lt;br /&gt;
* [[RomboRedux|Rombo Redux]] Remake of the Rombo Rombox (The Equalizor)&lt;br /&gt;
* [[Schneiderware EPROM Burner]] (DIY) ([[CPC Schneider International]])&lt;br /&gt;
* [[Schneiderware Pseudo ROM]] (DIY) ([[CPC Schneider International]])&lt;br /&gt;
* [[Sideways ram]] (Paul Townsend)&lt;br /&gt;
* [[SuperPower ROM Box]] ([[Micro Power Ltd.]])&lt;br /&gt;
* [[Universeller EPROM Programmer 4004]] ([[Dobbertin]])&lt;br /&gt;
* [[X-MEM]] ([[ACME]])&lt;br /&gt;
* [[X-ROM]] Eprom programmer and ROM Board ([[Timatic Systems]])&lt;br /&gt;
&lt;br /&gt;
== Monitors ==&lt;br /&gt;
* Computers [[monitor_compatible|compatible]] with Amstrad Monitors&lt;br /&gt;
* [[CM14|Amstrad CM14]] Colour Monitor (for CPC Plus)&lt;br /&gt;
* [[CTM640/CTM644|Amstrad CTM640/CTM644]] Color Monitor (for CPC 464/664/6128)&lt;br /&gt;
* [[GT64/GT65|Amstrad GT64/GT65]] Green Monitor (for CPC 464/664/6128)&lt;br /&gt;
* [[MM12|Amstrad MM12]] Monochrome Monitor (for CPC Plus)&lt;br /&gt;
* [[Amstrad MP1/MP2 modulator]]&lt;br /&gt;
* [[Amstrad MPV 001 modulator]] (Spanish MP1)&lt;br /&gt;
* [[MP2F|Amstrad MP-2F Scart Adapter]] (French MP2)&lt;br /&gt;
* [[MP-3|Amstrad MP-3 TV Tuner for CTM 644]]&lt;br /&gt;
* [[MPS Modulator]] Modulator made in Greece from MPS&lt;br /&gt;
* [[Dk'tronics TV Tuner]] ([[Dk'tronics]]) (similar to MP-3)&lt;br /&gt;
* [[Screenvision TV Tuner]] (Screens Microcomputers &amp;amp; Electronics Ltd.) (similar to MP-3)&lt;br /&gt;
* CPCI HF-modulator (CPC Schneider International 11/1986, Page 78ff. Someone please scan it, my issue lacks those pages!)&lt;br /&gt;
* [[TV SCART cable]] (DIY)&lt;br /&gt;
* [[LCD And Plasma TV Solution]] (DIY) - Composite Sync&lt;br /&gt;
* [[LCD monitor and LCD TV Solution (RGB)]] (DIY) - RGB (Scart, VGA, HDMI)&lt;br /&gt;
* [[Videomaster]] Modulator made in 1993 by Campursoft&lt;br /&gt;
&lt;br /&gt;
== Multi function expansions ==&lt;br /&gt;
&lt;br /&gt;
* [[Albireo]] ([[PulkoTronics]] / DIY)&lt;br /&gt;
* [[CPC Booster|CPC Booster/CPC Booster+]]&lt;br /&gt;
* [[CPCISA]] ([[Siou]])&lt;br /&gt;
* [[CPCMax!]]&lt;br /&gt;
* [[CPCX]]&lt;br /&gt;
* [[Full Expandable Interface]] ([[Timatic Systems]])&lt;br /&gt;
* [[PlayCity]]&lt;br /&gt;
* [[SYMBiFACE II]]&lt;br /&gt;
* [[ULIfAC]] (Ultimate Interface for Amstrad CPC)&lt;br /&gt;
&lt;br /&gt;
== Printers ==&lt;br /&gt;
&lt;br /&gt;
* ([[8bit Printer Ports]])&lt;br /&gt;
* ([[Amstrad Printers]])&lt;br /&gt;
* [[DMP1]] printer ([[Amstrad]]) ([[Seikosha]] Unihammer printer)&lt;br /&gt;
* [[DMP2000]] printer ([[Amstrad]]/[[Schneider]]) ([[Epson]]-compatible 9-pin printer)&lt;br /&gt;
* [[DMP2160]] printer ([[Amstrad]]/[[Schneider]]) (fast version of DMP2000)&lt;br /&gt;
* [[DMP3000]] printer ([[Amstrad]]/[[Schneider]]) (gray PC-version of DMP2000 with more ROM/RAM and IBM charset)&lt;br /&gt;
* [[DMP3160]] printer ([[Amstrad]]/[[Schneider]]) (fast version of DMP3000)&lt;br /&gt;
* [[DMP3250]]di printer ([[Amstrad]]) (dual interface version of DMP3160) (centronics + RS232)&lt;br /&gt;
* [[DMP4000]] printer ([[Amstrad]]/[[Schneider]]) ([[Epson]]-compatible 9-pin 16&amp;quot; wide printer)&lt;br /&gt;
* [[LD6000]] laser printer ([[Amstrad GmbH]]) (re-badgered Sharp printer, for German market only)&lt;br /&gt;
* [[LQ3500]](di) printer ([[Amstrad]]/[[Schneider]]) ([[Epson]]-compatible 24-pin printer)&lt;br /&gt;
* [[LQ5000]]di printer ([[Amstrad]]) ([[Epson]]-compatible 24-pin 16&amp;quot; wide printer)&lt;br /&gt;
* [[Robotron 6313|EuroPrint FT80X, Robotron 6313, Präsident 6320]] (east German)&lt;br /&gt;
* [[NLQ401|Schneider NLQ401]] ([[Schneider]]) (custom 9-pin printer, German counterpart of the DMP1)&lt;br /&gt;
* [[Star Printers]] (Star Micronics Co., Ltd.)&lt;br /&gt;
&lt;br /&gt;
== Real Time Clocks ==&lt;br /&gt;
&lt;br /&gt;
* [[ACU Real Time Clock (DIY)|ACU Real Time Clock]] (DIY) (without year counter) ([[Amstrad Computer User|ACU]])&lt;br /&gt;
* [[Aleste 520EX]] (a CPC clone with built-in RTC) ([[Patisonic]])&lt;br /&gt;
* [[Real Time Clock|CPCI Real Time Clock]] (DIY) ([[CPC Schneider International Sonderheft]])&lt;br /&gt;
* [[Dk'tronics Real Time Clock]] ([[Dk'tronics]])&lt;br /&gt;
* [[Dobbertin Smart Watch]] (the RTC itself is inserted like a ROM) ([[Dobbertin]])&lt;br /&gt;
* [[Schneiderware Real Time Clock]] (DIY) ([[CPC Schneider International]])&lt;br /&gt;
* [[SYMBiFACE_II:Realtime_clock|Realtime Clock]] of [[SYMBiFACE_II]] (modern RTC with bugged century counter)&lt;br /&gt;
* [[Realtime Clock of SYMBiFACE III]]&lt;br /&gt;
* [[uRTC-8 Universal RTC for Z80 computers]] (JonB)&lt;br /&gt;
* [[Nova]] ([[PulkoTronics]])&lt;br /&gt;
&lt;br /&gt;
== Synthesizer, sampler and music related ==&lt;br /&gt;
&lt;br /&gt;
* [[Amdrum]] (Playback) ([[Cheetah]])&lt;br /&gt;
* [[Amstrad SSA-1 Speech Synthesizer]] (Speech) ([[Amstrad]])&lt;br /&gt;
* [[CPC Booster|CPC Booster/CPC Booster+]] (Stereo Sampling/Playback) ([[Antitec]]/[[Dirty Minds]])&lt;br /&gt;
* [[Datel Digital Sound Sampler]]/[[Datel Electronics]]&lt;br /&gt;
* [[Digiblaster]] (Playback) (DIY) (8-bit DAC on printer port) ([[CPC Amstrad International]])&lt;br /&gt;
* [[Soundplayer]] (8-bit mono playback) ([[Futurs']])&lt;br /&gt;
* [[Soundplayer|Soundplayer+]] (8-bit mono playback) ([[Futurs']])&lt;br /&gt;
* [[Soundplayer|SoundplayerNG]] (DIY) (8-bit mono playback) ([[Futurs']])&lt;br /&gt;
* [[Digivox sampler]] (EMM)&lt;br /&gt;
* [[Dk'tronics Speech Synthesizer]] (Speech) ([[Dk'tronics]])&lt;br /&gt;
* [[DHCP MIDI Interface]] (DHCP Electronics)&lt;br /&gt;
* [[EMR MIDI Interface]] (MIDI) ([[EMR|ElectroMusic Research]])&lt;br /&gt;
* [[FuturePlayer]] (modern MP3 playback, max 128kbps) (Hard: Dr.Zed, Soft: TFM)&lt;br /&gt;
* [[LambdaSpeak]]&lt;br /&gt;
* [[Maestro]] (Amplifier/Speakers) (Vanguard Leisure Ltd.)&lt;br /&gt;
* [[Magic Sound Board]] for [[Aleste 520EX]] (four channel DMA playback) ([[Patisonic]])&lt;br /&gt;
* [[Mini Interface for connection to MK5 MIDI Keyboard]] ([[Cheetah]])&lt;br /&gt;
* [[Music Machine]] (Sampling/Playback/MIDI) ([[Ram Electronics]])&lt;br /&gt;
* [[MHT Speech Synthesizer]] (Speech) ([[MHT Ingenieros]])&lt;br /&gt;
* [[Silicon Systems MIDI Interface]] ([[Silicon Systems]])&lt;br /&gt;
* [[Sound Blaster]] (Amplifier/Speakers) ([[Siren Software]])&lt;br /&gt;
* [[TechniMusique Synthetiseur Musical|TMPI Musical Synthesizer]] (12 voices) ([[TechniMusique]])&lt;br /&gt;
* [[TMPI speech synthesizer|TMPI Speech Synthesizer]] (Speech) ([[TechniMusique]])&lt;br /&gt;
* [[Unconventional use of hardware to produce sounds]]&lt;br /&gt;
&lt;br /&gt;
== Cartridge ==&lt;br /&gt;
&lt;br /&gt;
* [[C4CPC|C4CPC]]  a modern cartridge replacement for the Amstrad Plus range and the GX4000.&lt;br /&gt;
* [[Plus2CPC|Plus2CPC]]  an expansion board to add a Plus cartridge port to the standard CPC.&lt;br /&gt;
* [https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/play2cpc-plus2cpc-ii-extra-sound-channels-and-rewritable-cartridges/ Play2CPC] (aka Plus2CPC II) cartridges are now rewriteable and it has been made compatible with the audio part of the PlayCity expansion (2xYMZ chips).&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
&lt;br /&gt;
* [[RP-1 CPC 464 Diagnostic PCB]]&lt;br /&gt;
* 64 Kb Printer Buffer (DIY) (what is this?) (added 19 August 2006 by CPCLER)&lt;br /&gt;
* [[Ambug|Ambug Robot]] (DIY) ([[Magenta Electronics Ltd.]])&lt;br /&gt;
* [[Amstore]] (network with 20MB harddisk) (Northern Computers)&lt;br /&gt;
* [[Amstrad Autofire Interface and Combined Mouse Interface|Amstrad Autofire Interface and Combined Mouse Interface]] (Unknown firm??)&lt;br /&gt;
* Amstrad Expansion System Part 2 ([[Maplin]]) - appeared in Project book 19 (for Part 1 see [[Maplin ROM Box]])&lt;br /&gt;
* [[Amstrad CT-1 Radio/Alarm-Clock]] ([[Amstrad]])&lt;br /&gt;
* [[CPCISA]] ([[Siou]])&lt;br /&gt;
* [[Data Media Printerinterface]] (printer splitter for connecting 2 or 3 software-selectable printers to the CPC) ([[Data Media]])&lt;br /&gt;
* [[DCP Interpacks]] (DCP Microdevelopments)&lt;br /&gt;
* [[Dust Covers]]&lt;br /&gt;
* [[Fischertechnik Interface]] for use with the [[Fischertechnik Trainingsrobot]], the [[Fischertechnik Plotter/Scanner]], and the [[Fischertechnik Computing Experimental]] kit.&lt;br /&gt;
* [[HDCPC]] (what is this?) (added 21 August 2006 by 85.218.166.50) (according to [[Dobbertin Harddisc|this page]], HDCPC is a modern IDE harddisk interace, but it's unknown who developed that thing?)&lt;br /&gt;
* [[Hexam]] ([[ACE Software]])&lt;br /&gt;
* [[Jagot &amp;amp; Leon Interface Cards]] ([[Jagot &amp;amp; Leon]])&lt;br /&gt;
* [[KDS Power Controller]] (a box with eight relays) ([[KDS Electronics]])&lt;br /&gt;
* [[Kersten PC Emulator]]&lt;br /&gt;
* [[Maplins 8bit Input Port]] ([[Maplin]]) (among others for use with Maplin's Weather Satellite Decoder)&lt;br /&gt;
* [[Maplin ROM Box|Maplins 6x8bit Input/Output Port]] ([[Maplin]]) (an extension to Maplin's &amp;quot;Rombox&amp;quot; project)&lt;br /&gt;
* [[Maplins Weather Satellite Receiver]] ([[Maplin]])&lt;br /&gt;
* [[Oktett]] (multimeter/oscilloscope) ([[Otten/Fecht]])&lt;br /&gt;
* [[Peripheral Soft Reset]] (System BIOS Feature for Peripherals)&lt;br /&gt;
* [[Schneiderware]] (a series of [[ECB Bus]] based DIY projects that were released in [[CPC Schneider International]] magazine)&lt;br /&gt;
* [[Split Extension Connector|Cheetah Marketing Split Extension Connector]] ([[Cheetah]])&lt;br /&gt;
* Teleterminal 300s (reportedly &amp;quot;simulates&amp;quot; rs232; connects to printer port; for use with acoustic coupler, see review in CPCI 8-1985, page 55-56)&lt;br /&gt;
* [[Slomo]] A device to reduce the execution speed of the Amstrad CPC (also available for other machines) by [[Nidd Valley Micro Products]], Ltd. (UK)&lt;br /&gt;
&lt;br /&gt;
Some further (unsorted) peripherals are found here: [[Hwlist from retroisle]]. More DIYs are listed on [[Happy Computer (Schneider Sonderheft)]] (those german magazine articles aren't yet scanned).&lt;br /&gt;
&lt;br /&gt;
[[Category:Peripherals| ]][[Category:Hardware|*]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114053</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=114053"/>
				<updated>2024-01-25T17:17:24Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Disclaimer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* I have not provided driver support for uIDE-16 on the CPC 6128. However, please see the [https://www.cpcwiki.eu/forum/applications/hdcpm-boot-and-run-cpm-plus-from-hard-disk/ HDCPM thread]&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/file/d/1HaWvlNjYw6uwRpdOBd-Tokw0SgrVJanO/view?usp=share_link || Intertec Superbrain I and II QD uIDE driver v0.12 package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
For uIDE-16 users with HDCPM, do not use XFORMAT - follow HDCPM documentation for disk prepatation.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
uiDE on the CPC6128 is supported by [[HDCPM]]. Kudos to d_kef!&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for '''personal purposes only''', on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Use for any commercial purpose is explicitly forbidden, this includes reverse engineering, selling or reselling the design or boards.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
* CPCWiki member d_kef, who has written [[HDCPM]] which allows uIDE-16 to work under CPM Plus on the CPC6128.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=110541</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=110541"/>
				<updated>2023-03-05T10:54:55Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* I have not provided driver support for uIDE-16 on the CPC 6128. However, please see the [https://www.cpcwiki.eu/forum/applications/hdcpm-boot-and-run-cpm-plus-from-hard-disk/ HDCPM thread]&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/file/d/1HaWvlNjYw6uwRpdOBd-Tokw0SgrVJanO/view?usp=share_link || Intertec Superbrain I and II QD uIDE driver v0.12 package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
For uIDE-16 users with HDCPM, do not use XFORMAT - follow HDCPM documentation for disk prepatation.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
uiDE on the CPC6128 is supported by [[HDCPM]]. Kudos to d_kef!&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
* CPCWiki member d_kef, who has written [[HDCPM]] which allows uIDE-16 to work under CPM Plus on the CPC6128.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=110316</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=110316"/>
				<updated>2023-02-24T15:38:29Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Acknowledgements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* I have not provided driver support for uIDE-16 on the CPC 6128. However, please see the [https://www.cpcwiki.eu/forum/applications/hdcpm-boot-and-run-cpm-plus-from-hard-disk/ HDCPM thread]&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/open?id=1VyHVd_wvhW6o6_qjQrx_pjYCS9jnaxRn || Intertec Superbrain QD uIDE driver installation package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
For uIDE-16 users with HDCPM, do not use XFORMAT - follow HDCPM documentation for disk prepatation.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
uiDE on the CPC6128 is supported by [[HDCPM]]. Kudos to d_kef!&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
* CPCWiki member d_kef, who has written [[HDCPM]] which allows uIDE-16 to work under CPM Plus on the CPC6128.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=110315</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=110315"/>
				<updated>2023-02-24T15:34:13Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Amstrad CPC6128 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* I have not provided driver support for uIDE-16 on the CPC 6128. However, please see the [https://www.cpcwiki.eu/forum/applications/hdcpm-boot-and-run-cpm-plus-from-hard-disk/ HDCPM thread]&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/open?id=1VyHVd_wvhW6o6_qjQrx_pjYCS9jnaxRn || Intertec Superbrain QD uIDE driver installation package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
For uIDE-16 users with HDCPM, do not use XFORMAT - follow HDCPM documentation for disk prepatation.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
uiDE on the CPC6128 is supported by [[HDCPM]]. Kudos to d_kef!&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=110314</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=110314"/>
				<updated>2023-02-24T15:32:49Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Using the formatter XFORMAT.COM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* I have not provided driver support for uIDE-16 on the CPC 6128. However, please see the [https://www.cpcwiki.eu/forum/applications/hdcpm-boot-and-run-cpm-plus-from-hard-disk/ HDCPM thread]&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/open?id=1VyHVd_wvhW6o6_qjQrx_pjYCS9jnaxRn || Intertec Superbrain QD uIDE driver installation package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
For uIDE-16 users with HDCPM, do not use XFORMAT - follow HDCPM documentation for disk prepatation.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
'''Note: There are no drivers available for the CPC6128 at this time.''' (But I am working on it!)&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=110313</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=110313"/>
				<updated>2023-02-24T15:11:18Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Limitations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* I have not provided driver support for uIDE-16 on the CPC 6128. However, please see the [https://www.cpcwiki.eu/forum/applications/hdcpm-boot-and-run-cpm-plus-from-hard-disk/ HDCPM thread]&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/open?id=1VyHVd_wvhW6o6_qjQrx_pjYCS9jnaxRn || Intertec Superbrain QD uIDE driver installation package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
'''Note: There are no drivers available for the CPC6128 at this time.''' (But I am working on it!)&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=107477</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=107477"/>
				<updated>2020-12-02T08:56:21Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Prices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Video Demonstrations ===&lt;br /&gt;
&lt;br /&gt;
* Hardware description and Superbrain demo: https://youtu.be/POBRlgAFxmo&lt;br /&gt;
* PCW (CP/M Plus) demo: https://youtu.be/CDJlPLYHUEA&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
=== Aux PWR and Aux Batt connectors ===&lt;br /&gt;
As supplied, I do not provide header pins for Aux PWR or Aux Batt pads. If you want to use either of them, solder standard 2.54mm pitch header pin pairs and connect to those.&lt;br /&gt;
&lt;br /&gt;
* Aux PWR is a 5v power line that is fed from the host computer. It is supplied as a convenience to allow you to provide power to other devices. Do not attempt to use it as a power input.&lt;br /&gt;
* Aux Batt is an alternative battery connector, to be used if you do not want to use the built in CR2032 button cell. If you use Aux Batt, you *must* remove the button cell first, and the voltage you need to apply is 3v - 5v. The clock chip can tolerate up to 7v but it is not advisable to go this high as you risk damaging it.&lt;br /&gt;
&lt;br /&gt;
For both connectors, observe the connection polarity printed on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
Download the latest variant that matches your host computer, rename to uRTC.COM and transfer to your computer.&lt;br /&gt;
&lt;br /&gt;
==== CP/M Plus variant ====&lt;br /&gt;
&lt;br /&gt;
Version 0.2 https://drive.google.com/open?id=1biJngbF-HsDswufP4QZSDSKqk6e34a54&lt;br /&gt;
&lt;br /&gt;
Version 0.1 https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
Note: When you set the system time on the PCW (-t option), the second is always set to 0.&lt;br /&gt;
&lt;br /&gt;
==== Superbrain variant ====&lt;br /&gt;
&lt;br /&gt;
Version 0.2 https://drive.google.com/open?id=1UZq4VTQw32Y4G1tUflGlZpAKdPz19NY9&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-t transfer uRTC date/time to host machine system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -t&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -t&lt;br /&gt;
&lt;br /&gt;
..would set the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
&lt;br /&gt;
Use the CP/M Plus / PCW version of uRTC.COM.&lt;br /&gt;
&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -t&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
&lt;br /&gt;
Use the Superbrain version of uRTC.COM.&lt;br /&gt;
&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -t&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
== Using timestamps with CP/M plus files ==&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of the [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts.&lt;br /&gt;
&lt;br /&gt;
[Update Dec 2020] Sadly, the clock chip used in this design has become much more expensive (the last one I bought cost over £10) and there are many counterfeits coming out of China, so it is risky to buy cheaply from there. My last three orders of clock chips turned out to be fake parts - not one of them worked. So I have to buy from the expensive UK vintage chip suppliers. As a result, I have had to put the price of the uRTC up to compensate.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £44.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=107476</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=107476"/>
				<updated>2020-12-02T08:53:23Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Prices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Video Demonstrations ===&lt;br /&gt;
&lt;br /&gt;
* Hardware description and Superbrain demo: https://youtu.be/POBRlgAFxmo&lt;br /&gt;
* PCW (CP/M Plus) demo: https://youtu.be/CDJlPLYHUEA&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
=== Aux PWR and Aux Batt connectors ===&lt;br /&gt;
As supplied, I do not provide header pins for Aux PWR or Aux Batt pads. If you want to use either of them, solder standard 2.54mm pitch header pin pairs and connect to those.&lt;br /&gt;
&lt;br /&gt;
* Aux PWR is a 5v power line that is fed from the host computer. It is supplied as a convenience to allow you to provide power to other devices. Do not attempt to use it as a power input.&lt;br /&gt;
* Aux Batt is an alternative battery connector, to be used if you do not want to use the built in CR2032 button cell. If you use Aux Batt, you *must* remove the button cell first, and the voltage you need to apply is 3v - 5v. The clock chip can tolerate up to 7v but it is not advisable to go this high as you risk damaging it.&lt;br /&gt;
&lt;br /&gt;
For both connectors, observe the connection polarity printed on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
Download the latest variant that matches your host computer, rename to uRTC.COM and transfer to your computer.&lt;br /&gt;
&lt;br /&gt;
==== CP/M Plus variant ====&lt;br /&gt;
&lt;br /&gt;
Version 0.2 https://drive.google.com/open?id=1biJngbF-HsDswufP4QZSDSKqk6e34a54&lt;br /&gt;
&lt;br /&gt;
Version 0.1 https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
Note: When you set the system time on the PCW (-t option), the second is always set to 0.&lt;br /&gt;
&lt;br /&gt;
==== Superbrain variant ====&lt;br /&gt;
&lt;br /&gt;
Version 0.2 https://drive.google.com/open?id=1UZq4VTQw32Y4G1tUflGlZpAKdPz19NY9&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-t transfer uRTC date/time to host machine system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -t&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -t&lt;br /&gt;
&lt;br /&gt;
..would set the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
&lt;br /&gt;
Use the CP/M Plus / PCW version of uRTC.COM.&lt;br /&gt;
&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -t&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
&lt;br /&gt;
Use the Superbrain version of uRTC.COM.&lt;br /&gt;
&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -t&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
== Using timestamps with CP/M plus files ==&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of the [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. Sadly the clock chip used in this design has become much more expensive (the last one I bought cost over £10) and there are many counterfeits coming out of China, so it is risky to buy direct, so I have had to put the price of the uRTC up. Apologies.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £44.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=104010</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=104010"/>
				<updated>2019-12-11T14:54:40Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Schneider PCW machines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* There is no driver support for uIDE-16 on the CPC 6128 yet. I'm working on it.&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/open?id=1VyHVd_wvhW6o6_qjQrx_pjYCS9jnaxRn || Intertec Superbrain QD uIDE driver installation package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
'''Note: There are no drivers available for the CPC6128 at this time.''' (But I am working on it!)&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas. ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-8 bare board || £8.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-8 assembled || £42.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-16 bare board || £9.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-16 assembled || £52.50&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim bare board (LHS or RHS) || £2.50&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| Schneider expansion port adapter with composite video output (assembled) || £26.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| Schneider expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £15.00&lt;br /&gt;
|-&lt;br /&gt;
| CPC 6128 expansion port adapter || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| CPC 6128 expansion port adapter (assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Superbrain i2716 ROM adapter board || £2.50&lt;br /&gt;
|-&lt;br /&gt;
| Superbrain i2716 ROM adapter board (assembled) || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| 128MB DOM suitable for use with uIDE-8 and uIDE-16 || £7.95&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a, buy from an auction site: &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=104009</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=104009"/>
				<updated>2019-12-11T14:53:58Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Schneider PCW machines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* There is no driver support for uIDE-16 on the CPC 6128 yet. I'm working on it.&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/open?id=1VyHVd_wvhW6o6_qjQrx_pjYCS9jnaxRn || Intertec Superbrain QD uIDE driver installation package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Schneider_PCW_variants&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
'''Note: There are no drivers available for the CPC6128 at this time.''' (But I am working on it!)&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas. ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-8 bare board || £8.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-8 assembled || £42.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-16 bare board || £9.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-16 assembled || £52.50&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim bare board (LHS or RHS) || £2.50&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| Schneider expansion port adapter with composite video output (assembled) || £26.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| Schneider expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £15.00&lt;br /&gt;
|-&lt;br /&gt;
| CPC 6128 expansion port adapter || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| CPC 6128 expansion port adapter (assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Superbrain i2716 ROM adapter board || £2.50&lt;br /&gt;
|-&lt;br /&gt;
| Superbrain i2716 ROM adapter board (assembled) || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| 128MB DOM suitable for use with uIDE-8 and uIDE-16 || £7.95&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a, buy from an auction site: &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=104008</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=104008"/>
				<updated>2019-12-11T14:52:45Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Correct way to connect the uIDE boards to the computer's expansion port */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* There is no driver support for uIDE-16 on the CPC 6128 yet. I'm working on it.&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/open?id=1VyHVd_wvhW6o6_qjQrx_pjYCS9jnaxRn || Intertec Superbrain QD uIDE driver installation package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW machines ===&lt;br /&gt;
The Schneider expansion port is different to the Amstrad PCW edge connector. To connect to it you need a 50 way Centronics to IDC ribbon cable and a Schneider-specific expansion port adapter (this has a 50 way IDC header on it rather than an edge connector).&lt;br /&gt;
&lt;br /&gt;
The cable and connection is shown on this page.&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
'''Note: There are no drivers available for the CPC6128 at this time.''' (But I am working on it!)&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas. ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-8 bare board || £8.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-8 assembled || £42.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-16 bare board || £9.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-16 assembled || £52.50&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim bare board (LHS or RHS) || £2.50&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| Schneider expansion port adapter with composite video output (assembled) || £26.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| Schneider expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £15.00&lt;br /&gt;
|-&lt;br /&gt;
| CPC 6128 expansion port adapter || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| CPC 6128 expansion port adapter (assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Superbrain i2716 ROM adapter board || £2.50&lt;br /&gt;
|-&lt;br /&gt;
| Superbrain i2716 ROM adapter board (assembled) || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| 128MB DOM suitable for use with uIDE-8 and uIDE-16 || £7.95&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a, buy from an auction site: &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=104007</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=104007"/>
				<updated>2019-12-11T14:49:15Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Prices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* There is no driver support for uIDE-16 on the CPC 6128 yet. I'm working on it.&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/open?id=1VyHVd_wvhW6o6_qjQrx_pjYCS9jnaxRn || Intertec Superbrain QD uIDE driver installation package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
'''Note: There are no drivers available for the CPC6128 at this time.''' (But I am working on it!)&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas. ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-8 bare board || £8.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-8 assembled || £42.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-16 bare board || £9.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-16 assembled || £52.50&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim bare board (LHS or RHS) || £2.50&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| Schneider expansion port adapter with composite video output (assembled) || £26.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| Schneider expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £15.00&lt;br /&gt;
|-&lt;br /&gt;
| CPC 6128 expansion port adapter || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| CPC 6128 expansion port adapter (assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Superbrain i2716 ROM adapter board || £2.50&lt;br /&gt;
|-&lt;br /&gt;
| Superbrain i2716 ROM adapter board (assembled) || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| 128MB DOM suitable for use with uIDE-8 and uIDE-16 || £7.95&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a, buy from an auction site: &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=104006</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=104006"/>
				<updated>2019-12-11T14:46:24Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Machine-specific expansion port adapters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* There is no driver support for uIDE-16 on the CPC 6128 yet. I'm working on it.&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/open?id=1VyHVd_wvhW6o6_qjQrx_pjYCS9jnaxRn || Intertec Superbrain QD uIDE driver installation package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== Schneider PCW variants ===&lt;br /&gt;
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You also need a modified PCW expansion port adapter card, with a 50 way IDC header installed instead of the 50 way edge connector. The Schneider cable plugs into this, and you then connect the uIDE to it in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
'''Note: There are no drivers available for the CPC6128 at this time.''' (But I am working on it!)&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas. ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. I encourage self build!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-8 bare board || £8.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-8 assembled || £42.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-16 bare board || £9.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-16 assembled || £52.50&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim bare board (LHS or RHS) || £2.50&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| CPC 6128 expansion port adapter || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| CPC 6128 expansion port adapter (assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Superbrain i2716 ROM adapter board || £2.50&lt;br /&gt;
|-&lt;br /&gt;
| Superbrain i2716 ROM adapter board (assembled) || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| 128MB DOM suitable for use with uIDE-8 and uIDE-16 || £7.95&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a, buy from an auction site: &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:Schneider_adapter_cable_fitted.jpg&amp;diff=104005</id>
		<title>File:Schneider adapter cable fitted.jpg</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:Schneider_adapter_cable_fitted.jpg&amp;diff=104005"/>
				<updated>2019-12-11T14:44:51Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: Picture of the Schneider adapter cable connected to a modified PCW expansion port (&amp;quot;lite&amp;quot; version).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Picture of the Schneider adapter cable connected to a modified PCW expansion port (&amp;quot;lite&amp;quot; version).&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:Schneider_adapter_cable.jpg&amp;diff=104004</id>
		<title>File:Schneider adapter cable.jpg</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:Schneider_adapter_cable.jpg&amp;diff=104004"/>
				<updated>2019-12-11T14:41:18Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: Picture of a 50 way Schneider PCW adapter cable for the uIDE-8 expansion port adapter board.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Picture of a 50 way Schneider PCW adapter cable for the uIDE-8 expansion port adapter board.&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103770</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103770"/>
				<updated>2019-10-10T11:42:26Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Superbrain variant */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Video Demonstrations ===&lt;br /&gt;
&lt;br /&gt;
* Hardware description and Superbrain demo: https://youtu.be/POBRlgAFxmo&lt;br /&gt;
* PCW (CP/M Plus) demo: https://youtu.be/CDJlPLYHUEA&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
=== Aux PWR and Aux Batt connectors ===&lt;br /&gt;
As supplied, I do not provide header pins for Aux PWR or Aux Batt pads. If you want to use either of them, solder standard 2.54mm pitch header pin pairs and connect to those.&lt;br /&gt;
&lt;br /&gt;
* Aux PWR is a 5v power line that is fed from the host computer. It is supplied as a convenience to allow you to provide power to other devices. Do not attempt to use it as a power input.&lt;br /&gt;
* Aux Batt is an alternative battery connector, to be used if you do not want to use the built in CR2032 button cell. If you use Aux Batt, you *must* remove the button cell first, and the voltage you need to apply is 3v - 5v. The clock chip can tolerate up to 7v but it is not advisable to go this high as you risk damaging it.&lt;br /&gt;
&lt;br /&gt;
For both connectors, observe the connection polarity printed on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
Download the latest variant that matches your host computer, rename to uRTC.COM and transfer to your computer.&lt;br /&gt;
&lt;br /&gt;
==== CP/M Plus variant ====&lt;br /&gt;
&lt;br /&gt;
Version 0.2 https://drive.google.com/open?id=1biJngbF-HsDswufP4QZSDSKqk6e34a54&lt;br /&gt;
&lt;br /&gt;
Version 0.1 https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
Note: When you set the system time on the PCW (-t option), the second is always set to 0.&lt;br /&gt;
&lt;br /&gt;
==== Superbrain variant ====&lt;br /&gt;
&lt;br /&gt;
Version 0.2 https://drive.google.com/open?id=1UZq4VTQw32Y4G1tUflGlZpAKdPz19NY9&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-t transfer uRTC date/time to host machine system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -t&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -t&lt;br /&gt;
&lt;br /&gt;
..would set the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
&lt;br /&gt;
Use the CP/M Plus / PCW version of uRTC.COM.&lt;br /&gt;
&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -t&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
&lt;br /&gt;
Use the Superbrain version of uRTC.COM.&lt;br /&gt;
&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -t&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
== Using timestamps with CP/M plus files ==&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of the [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £34.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103769</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103769"/>
				<updated>2019-10-10T11:42:08Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* CP/M Plus variant */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Video Demonstrations ===&lt;br /&gt;
&lt;br /&gt;
* Hardware description and Superbrain demo: https://youtu.be/POBRlgAFxmo&lt;br /&gt;
* PCW (CP/M Plus) demo: https://youtu.be/CDJlPLYHUEA&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
=== Aux PWR and Aux Batt connectors ===&lt;br /&gt;
As supplied, I do not provide header pins for Aux PWR or Aux Batt pads. If you want to use either of them, solder standard 2.54mm pitch header pin pairs and connect to those.&lt;br /&gt;
&lt;br /&gt;
* Aux PWR is a 5v power line that is fed from the host computer. It is supplied as a convenience to allow you to provide power to other devices. Do not attempt to use it as a power input.&lt;br /&gt;
* Aux Batt is an alternative battery connector, to be used if you do not want to use the built in CR2032 button cell. If you use Aux Batt, you *must* remove the button cell first, and the voltage you need to apply is 3v - 5v. The clock chip can tolerate up to 7v but it is not advisable to go this high as you risk damaging it.&lt;br /&gt;
&lt;br /&gt;
For both connectors, observe the connection polarity printed on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
Download the latest variant that matches your host computer, rename to uRTC.COM and transfer to your computer.&lt;br /&gt;
&lt;br /&gt;
==== CP/M Plus variant ====&lt;br /&gt;
&lt;br /&gt;
Version 0.2 https://drive.google.com/open?id=1biJngbF-HsDswufP4QZSDSKqk6e34a54&lt;br /&gt;
&lt;br /&gt;
Version 0.1 https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
Note: When you set the system time on the PCW (-t option), the second is always set to 0.&lt;br /&gt;
&lt;br /&gt;
==== Superbrain variant ====&lt;br /&gt;
&lt;br /&gt;
Versdion 0.2 https://drive.google.com/open?id=1UZq4VTQw32Y4G1tUflGlZpAKdPz19NY9&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-t transfer uRTC date/time to host machine system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -t&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -t&lt;br /&gt;
&lt;br /&gt;
..would set the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
&lt;br /&gt;
Use the CP/M Plus / PCW version of uRTC.COM.&lt;br /&gt;
&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -t&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
&lt;br /&gt;
Use the Superbrain version of uRTC.COM.&lt;br /&gt;
&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -t&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
== Using timestamps with CP/M plus files ==&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of the [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £34.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103768</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103768"/>
				<updated>2019-10-10T11:40:14Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* uRTC.COM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Video Demonstrations ===&lt;br /&gt;
&lt;br /&gt;
* Hardware description and Superbrain demo: https://youtu.be/POBRlgAFxmo&lt;br /&gt;
* PCW (CP/M Plus) demo: https://youtu.be/CDJlPLYHUEA&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
=== Aux PWR and Aux Batt connectors ===&lt;br /&gt;
As supplied, I do not provide header pins for Aux PWR or Aux Batt pads. If you want to use either of them, solder standard 2.54mm pitch header pin pairs and connect to those.&lt;br /&gt;
&lt;br /&gt;
* Aux PWR is a 5v power line that is fed from the host computer. It is supplied as a convenience to allow you to provide power to other devices. Do not attempt to use it as a power input.&lt;br /&gt;
* Aux Batt is an alternative battery connector, to be used if you do not want to use the built in CR2032 button cell. If you use Aux Batt, you *must* remove the button cell first, and the voltage you need to apply is 3v - 5v. The clock chip can tolerate up to 7v but it is not advisable to go this high as you risk damaging it.&lt;br /&gt;
&lt;br /&gt;
For both connectors, observe the connection polarity printed on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
Download the latest variant that matches your host computer, rename to uRTC.COM and transfer to your computer.&lt;br /&gt;
&lt;br /&gt;
==== CP/M Plus variant ====&lt;br /&gt;
&lt;br /&gt;
Version 0.2 https://drive.google.com/open?id=1biJngbF-HsDswufP4QZSDSKqk6e34a54&lt;br /&gt;
&lt;br /&gt;
Version 0.1 https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Superbrain variant ====&lt;br /&gt;
&lt;br /&gt;
Versdion 0.2 https://drive.google.com/open?id=1UZq4VTQw32Y4G1tUflGlZpAKdPz19NY9&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-t transfer uRTC date/time to host machine system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -t&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -t&lt;br /&gt;
&lt;br /&gt;
..would set the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
&lt;br /&gt;
Use the CP/M Plus / PCW version of uRTC.COM.&lt;br /&gt;
&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -t&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
&lt;br /&gt;
Use the Superbrain version of uRTC.COM.&lt;br /&gt;
&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -t&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
== Using timestamps with CP/M plus files ==&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of the [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £34.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103767</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103767"/>
				<updated>2019-10-10T11:34:10Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Setting the system time automatically on the Superbrain */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Video Demonstrations ===&lt;br /&gt;
&lt;br /&gt;
* Hardware description and Superbrain demo: https://youtu.be/POBRlgAFxmo&lt;br /&gt;
* PCW (CP/M Plus) demo: https://youtu.be/CDJlPLYHUEA&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
=== Aux PWR and Aux Batt connectors ===&lt;br /&gt;
As supplied, I do not provide header pins for Aux PWR or Aux Batt pads. If you want to use either of them, solder standard 2.54mm pitch header pin pairs and connect to those.&lt;br /&gt;
&lt;br /&gt;
* Aux PWR is a 5v power line that is fed from the host computer. It is supplied as a convenience to allow you to provide power to other devices. Do not attempt to use it as a power input.&lt;br /&gt;
* Aux Batt is an alternative battery connector, to be used if you do not want to use the built in CR2032 button cell. If you use Aux Batt, you *must* remove the button cell first, and the voltage you need to apply is 3v - 5v. The clock chip can tolerate up to 7v but it is not advisable to go this high as you risk damaging it.&lt;br /&gt;
&lt;br /&gt;
For both connectors, observe the connection polarity printed on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
&lt;br /&gt;
Version 0.2 https://drive.google.com/open?id=1biJngbF-HsDswufP4QZSDSKqk6e34a54&lt;br /&gt;
&lt;br /&gt;
Version 0.1 https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -t&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
&lt;br /&gt;
Use the Superbrain version of uRTC.COM.&lt;br /&gt;
&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -t&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
== Using timestamps with CP/M plus files ==&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of the [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £34.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103766</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103766"/>
				<updated>2019-10-10T11:33:27Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Setting the system time automatically on the PCW */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Video Demonstrations ===&lt;br /&gt;
&lt;br /&gt;
* Hardware description and Superbrain demo: https://youtu.be/POBRlgAFxmo&lt;br /&gt;
* PCW (CP/M Plus) demo: https://youtu.be/CDJlPLYHUEA&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
=== Aux PWR and Aux Batt connectors ===&lt;br /&gt;
As supplied, I do not provide header pins for Aux PWR or Aux Batt pads. If you want to use either of them, solder standard 2.54mm pitch header pin pairs and connect to those.&lt;br /&gt;
&lt;br /&gt;
* Aux PWR is a 5v power line that is fed from the host computer. It is supplied as a convenience to allow you to provide power to other devices. Do not attempt to use it as a power input.&lt;br /&gt;
* Aux Batt is an alternative battery connector, to be used if you do not want to use the built in CR2032 button cell. If you use Aux Batt, you *must* remove the button cell first, and the voltage you need to apply is 3v - 5v. The clock chip can tolerate up to 7v but it is not advisable to go this high as you risk damaging it.&lt;br /&gt;
&lt;br /&gt;
For both connectors, observe the connection polarity printed on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
&lt;br /&gt;
Version 0.2 https://drive.google.com/open?id=1biJngbF-HsDswufP4QZSDSKqk6e34a54&lt;br /&gt;
&lt;br /&gt;
Version 0.1 https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -t&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -ts&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
== Using timestamps with CP/M plus files ==&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of the [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £34.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103765</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103765"/>
				<updated>2019-10-10T11:32:39Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Download link */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Video Demonstrations ===&lt;br /&gt;
&lt;br /&gt;
* Hardware description and Superbrain demo: https://youtu.be/POBRlgAFxmo&lt;br /&gt;
* PCW (CP/M Plus) demo: https://youtu.be/CDJlPLYHUEA&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
=== Aux PWR and Aux Batt connectors ===&lt;br /&gt;
As supplied, I do not provide header pins for Aux PWR or Aux Batt pads. If you want to use either of them, solder standard 2.54mm pitch header pin pairs and connect to those.&lt;br /&gt;
&lt;br /&gt;
* Aux PWR is a 5v power line that is fed from the host computer. It is supplied as a convenience to allow you to provide power to other devices. Do not attempt to use it as a power input.&lt;br /&gt;
* Aux Batt is an alternative battery connector, to be used if you do not want to use the built in CR2032 button cell. If you use Aux Batt, you *must* remove the button cell first, and the voltage you need to apply is 3v - 5v. The clock chip can tolerate up to 7v but it is not advisable to go this high as you risk damaging it.&lt;br /&gt;
&lt;br /&gt;
For both connectors, observe the connection polarity printed on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
&lt;br /&gt;
Version 0.2 https://drive.google.com/open?id=1biJngbF-HsDswufP4QZSDSKqk6e34a54&lt;br /&gt;
&lt;br /&gt;
Version 0.1 https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -tp&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -ts&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
== Using timestamps with CP/M plus files ==&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of the [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £34.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103764</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103764"/>
				<updated>2019-10-09T15:20:44Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Prices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Video Demonstrations ===&lt;br /&gt;
&lt;br /&gt;
* Hardware description and Superbrain demo: https://youtu.be/POBRlgAFxmo&lt;br /&gt;
* PCW (CP/M Plus) demo: https://youtu.be/CDJlPLYHUEA&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
=== Aux PWR and Aux Batt connectors ===&lt;br /&gt;
As supplied, I do not provide header pins for Aux PWR or Aux Batt pads. If you want to use either of them, solder standard 2.54mm pitch header pin pairs and connect to those.&lt;br /&gt;
&lt;br /&gt;
* Aux PWR is a 5v power line that is fed from the host computer. It is supplied as a convenience to allow you to provide power to other devices. Do not attempt to use it as a power input.&lt;br /&gt;
* Aux Batt is an alternative battery connector, to be used if you do not want to use the built in CR2032 button cell. If you use Aux Batt, you *must* remove the button cell first, and the voltage you need to apply is 3v - 5v. The clock chip can tolerate up to 7v but it is not advisable to go this high as you risk damaging it.&lt;br /&gt;
&lt;br /&gt;
For both connectors, observe the connection polarity printed on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -tp&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -ts&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
== Using timestamps with CP/M plus files ==&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of the [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £34.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103747</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103747"/>
				<updated>2019-10-03T08:18:47Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Using timestamps with CP/M plus files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Video Demonstrations ===&lt;br /&gt;
&lt;br /&gt;
* Hardware description and Superbrain demo: https://youtu.be/POBRlgAFxmo&lt;br /&gt;
* PCW (CP/M Plus) demo: https://youtu.be/CDJlPLYHUEA&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
=== Aux PWR and Aux Batt connectors ===&lt;br /&gt;
As supplied, I do not provide header pins for Aux PWR or Aux Batt pads. If you want to use either of them, solder standard 2.54mm pitch header pin pairs and connect to those.&lt;br /&gt;
&lt;br /&gt;
* Aux PWR is a 5v power line that is fed from the host computer. It is supplied as a convenience to allow you to provide power to other devices. Do not attempt to use it as a power input.&lt;br /&gt;
* Aux Batt is an alternative battery connector, to be used if you do not want to use the built in CR2032 button cell. If you use Aux Batt, you *must* remove the button cell first, and the voltage you need to apply is 3v - 5v. The clock chip can tolerate up to 7v but it is not advisable to go this high as you risk damaging it.&lt;br /&gt;
&lt;br /&gt;
For both connectors, observe the connection polarity printed on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -tp&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -ts&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
== Using timestamps with CP/M plus files ==&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of the [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £37.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103746</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103746"/>
				<updated>2019-10-03T08:17:42Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Using timestamps with CP/M plus files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Video Demonstrations ===&lt;br /&gt;
&lt;br /&gt;
* Hardware description and Superbrain demo: https://youtu.be/POBRlgAFxmo&lt;br /&gt;
* PCW (CP/M Plus) demo: https://youtu.be/CDJlPLYHUEA&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
=== Aux PWR and Aux Batt connectors ===&lt;br /&gt;
As supplied, I do not provide header pins for Aux PWR or Aux Batt pads. If you want to use either of them, solder standard 2.54mm pitch header pin pairs and connect to those.&lt;br /&gt;
&lt;br /&gt;
* Aux PWR is a 5v power line that is fed from the host computer. It is supplied as a convenience to allow you to provide power to other devices. Do not attempt to use it as a power input.&lt;br /&gt;
* Aux Batt is an alternative battery connector, to be used if you do not want to use the built in CR2032 button cell. If you use Aux Batt, you *must* remove the button cell first, and the voltage you need to apply is 3v - 5v. The clock chip can tolerate up to 7v but it is not advisable to go this high as you risk damaging it.&lt;br /&gt;
&lt;br /&gt;
For both connectors, observe the connection polarity printed on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -tp&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -ts&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
== Using timestamps with CP/M plus files ==&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of the [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf|CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £37.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103745</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103745"/>
				<updated>2019-10-02T12:43:44Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* About uRTC-8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Video Demonstrations ===&lt;br /&gt;
&lt;br /&gt;
* Hardware description and Superbrain demo: https://youtu.be/POBRlgAFxmo&lt;br /&gt;
* PCW (CP/M Plus) demo: https://youtu.be/CDJlPLYHUEA&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
=== Aux PWR and Aux Batt connectors ===&lt;br /&gt;
As supplied, I do not provide header pins for Aux PWR or Aux Batt pads. If you want to use either of them, solder standard 2.54mm pitch header pin pairs and connect to those.&lt;br /&gt;
&lt;br /&gt;
* Aux PWR is a 5v power line that is fed from the host computer. It is supplied as a convenience to allow you to provide power to other devices. Do not attempt to use it as a power input.&lt;br /&gt;
* Aux Batt is an alternative battery connector, to be used if you do not want to use the built in CR2032 button cell. If you use Aux Batt, you *must* remove the button cell first, and the voltage you need to apply is 3v - 5v. The clock chip can tolerate up to 7v but it is not advisable to go this high as you risk damaging it.&lt;br /&gt;
&lt;br /&gt;
For both connectors, observe the connection polarity printed on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -tp&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -ts&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
== Using timestamps with CP/M plus files ==&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf|the CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £37.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103743</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103743"/>
				<updated>2019-10-02T11:21:55Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Using timestamps with CP/M plus files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
=== Aux PWR and Aux Batt connectors ===&lt;br /&gt;
As supplied, I do not provide header pins for Aux PWR or Aux Batt pads. If you want to use either of them, solder standard 2.54mm pitch header pin pairs and connect to those.&lt;br /&gt;
&lt;br /&gt;
* Aux PWR is a 5v power line that is fed from the host computer. It is supplied as a convenience to allow you to provide power to other devices. Do not attempt to use it as a power input.&lt;br /&gt;
* Aux Batt is an alternative battery connector, to be used if you do not want to use the built in CR2032 button cell. If you use Aux Batt, you *must* remove the button cell first, and the voltage you need to apply is 3v - 5v. The clock chip can tolerate up to 7v but it is not advisable to go this high as you risk damaging it.&lt;br /&gt;
&lt;br /&gt;
For both connectors, observe the connection polarity printed on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -tp&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -ts&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
== Using timestamps with CP/M plus files ==&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf|the CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £37.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103742</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103742"/>
				<updated>2019-10-02T10:47:13Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Aux PWR and Aux Batt connectors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
=== Aux PWR and Aux Batt connectors ===&lt;br /&gt;
As supplied, I do not provide header pins for Aux PWR or Aux Batt pads. If you want to use either of them, solder standard 2.54mm pitch header pin pairs and connect to those.&lt;br /&gt;
&lt;br /&gt;
* Aux PWR is a 5v power line that is fed from the host computer. It is supplied as a convenience to allow you to provide power to other devices. Do not attempt to use it as a power input.&lt;br /&gt;
* Aux Batt is an alternative battery connector, to be used if you do not want to use the built in CR2032 button cell. If you use Aux Batt, you *must* remove the button cell first, and the voltage you need to apply is 3v - 5v. The clock chip can tolerate up to 7v but it is not advisable to go this high as you risk damaging it.&lt;br /&gt;
&lt;br /&gt;
For both connectors, observe the connection polarity printed on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -tp&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -ts&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
=== Using timestamps with CP/M plus files ===&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf|the CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £37.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103741</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103741"/>
				<updated>2019-10-02T10:45:20Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Aux PWR and Aux Batt connectors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
=== Aux PWR and Aux Batt connectors ===&lt;br /&gt;
As supplied, I do not provide header pins for Aux PWR or Aux Batt pads. If you want to use either of them, solder standard 2.54mm pitch header pin pairs and connect to those.&lt;br /&gt;
&lt;br /&gt;
* Aux PWR is a 5v power line that is fed from the host computer. It is supplied as a convenience to allow you to provide power to other devices. Do not attempt to use it as a power input.&lt;br /&gt;
* Aux Batt is an alternative battery connector, to be used if you do not want to use the built in CR2032 button cell. If you use Aux Batt, you *must* remove the button cell first, and the voltage you need to apply is 3v - 5v. Any more and you risk damaging the clock chip.&lt;br /&gt;
&lt;br /&gt;
For both connectors, observe the connection polarity printed on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -tp&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -ts&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
=== Using timestamps with CP/M plus files ===&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf|the CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £37.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103740</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103740"/>
				<updated>2019-10-02T10:39:48Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Aux PWR and Aux Batt jumpers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
=== Aux PWR and Aux Batt connectors ===&lt;br /&gt;
As supplied, I do not provide header pins for Aux PWR or Aux Batt pads. If you want to use either of them, solder standard 2.54mm pitch header pin pairs and connect to those.&lt;br /&gt;
&lt;br /&gt;
* Aux PWR is a 5v power line that is fed from the host computer. It is supplied as a convenience to allow you to provide power to other devices. Do not attempt to use it as a power input.&lt;br /&gt;
* Aux Batt is an alternative battery connector, to be used if you do not want to use the built in CR2032 button cell. If you use Aux Batt, you *must* remove the button cell first, and the voltage you need to apply is ~3v. Any more and you risk damaging the clock chip.&lt;br /&gt;
&lt;br /&gt;
For both connectors, observe the connection polarity printed on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -tp&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -ts&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
=== Using timestamps with CP/M plus files ===&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf|the CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £37.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103739</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103739"/>
				<updated>2019-10-02T10:38:26Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Pictures of the finished board */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
=== Aux PWR and Aux Batt jumpers ===&lt;br /&gt;
As supplied, I do not provide header pins for Aux PWR or Aux Batt pads. If you want to use either of them, solder standard 2.54mm pitch header pin pairs and connect to those.&lt;br /&gt;
&lt;br /&gt;
* Aux PWR is a 5v power line that is fed from the host computer. It is supplied as a convenience to allow you to provide power to other devices. Do not attempt to use it as a power input.&lt;br /&gt;
* Aux Batt is an alternative battery connector, to be used if you do not want to use the built in CR2032 button cell. If you use Aux Batt, you *must* remove the button cell first, and the voltage you need to apply is ~3v. Any more and you risk damaging the clock chip.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -tp&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -ts&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
=== Using timestamps with CP/M plus files ===&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf|the CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £37.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103738</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103738"/>
				<updated>2019-10-02T10:32:31Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* About uRTC-8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC. The default base address is 80h, and this is what uRTC.COM expects. Contact me if you need to set a different I/O base address.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -tp&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -ts&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
=== Using timestamps with CP/M plus files ===&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf|the CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £37.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103737</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103737"/>
				<updated>2019-10-02T10:30:56Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Using timestamps with CP/M plus files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -tp&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -ts&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
=== Using timestamps with CP/M plus files ===&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf|the CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
==== Locoscript considerations ====&lt;br /&gt;
For PCW users, be aware that Locoscript does not support datestamps on CP/M file systems properly, so it is not recommended to use INITDIR on any disk that is used to store Locoscript files (including CP/M disks you want to read files from within Locoscript).&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £37.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103736</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103736"/>
				<updated>2019-10-02T10:28:01Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on uRTC's clock, then transfer the new date and current uRTC time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -tp&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -ts&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
=== Using timestamps with CP/M plus files ===&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf|the CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £37.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103735</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103735"/>
				<updated>2019-10-02T10:26:57Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, and / or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on the RTC's clock, then transfer the new date and time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -tp&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -ts&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
=== Using timestamps with CP/M plus files ===&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf|the CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £37.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103734</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103734"/>
				<updated>2019-10-01T20:23:04Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* About uRTC-8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uIDE-8 in order to use uRTC-8 but you will need to choose a way to connect it to your computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on the RTC's clock, then transfer the new date and time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -tp&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -ts&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
=== Using timestamps with CP/M plus files ===&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf|the CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £37.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103733</id>
		<title>URTC-8 Universal RTC for Z80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=URTC-8_Universal_RTC_for_Z80_computers&amp;diff=103733"/>
				<updated>2019-10-01T20:22:21Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* About uRTC-8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:URTC-8 OshPark.JPG|200px|thumb|right|uRTC-8 board render from OshPark]]&lt;br /&gt;
[[File:URTC-8 3D.JPG|250px|thumb|right|uRTC-8 3D render from KiCad]]&lt;br /&gt;
&lt;br /&gt;
== What's an &amp;quot;RTC&amp;quot;? ==&lt;br /&gt;
In case you didn't know.. an &amp;quot;RTC&amp;quot; is a &amp;quot;Real Time Clock&amp;quot; - in this instance, a clock that maintains the time even when the host computer it is connected to is switched off. It is separate to the clock inside the computer; so, for example, the Amstrad CP/M Plus DATE.COM command prints the time and date from the internal clock only. However, it is the user's responsibility to enter the time and date each time the host computer is turned on if he/she wants DATE.COM to return the right information. Using an external RTC like uRTC-8, you can get the computer to perform this task automatically at each start up.&lt;br /&gt;
&lt;br /&gt;
== About uRTC-8 ==&lt;br /&gt;
uRTC-8 is a universal RTC that can be connected via a [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Z80_Shims|Z80 Shim]] to any Z80 computer that has a socketed CPU. It is also compatible with the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Machine-specific_expansion_port_adapters|uIDE-8 PcW expansion port adapters]]. Both of these connectivity options present a 40 way &amp;quot;Z80 Bus&amp;quot; and you can connect uRTC-8 to this bus, in parallel with other devices on the bus.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 uses an 8 bit comparator and a set of jumpers to enable I/O base address selection, just like uIDE-8. The RTC used is an Epson RTC72421 which has 16 registers, directly accessible via IN and OUT instructions. As a result, the base I/O address is a four bit number between 0000 and 1111 (0-15), putting the device at any of the I/O addresses 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h, 90h, A0h, B0h, C0h, D0h, E0h or F0h. From any of these base addresses to [base address + 0Fh] are the 16 registers of the Epson RTC.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is powered by the host computer, but also has a battery backed supply to maintain the time and date when the host is powered down. The battery is a common CR2032 3v button cell.&lt;br /&gt;
&lt;br /&gt;
uRTC-8 is designed to work on the Z80 bus implemented by uIDE-8. The intention is that the board is connected to the Z80 bus in parallel to uIDE-8 to provide a means to set the host computer's clock at boot time, automatically. The uRTC-8 board is exactly the same size as uIDE-8 with matching mounting holes, so they can be stacked one above the other using PCB standoffs.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers|uIDE CPC Wiki page]] for further details on connectivity options. You don't need uRTC-8 in order to use uRTC-8 but you will need to choose a way to connect it to you computer. PCWs can use Z80 shim or the expansion port adapter; other Z80 computers can use the Z80 shim.&lt;br /&gt;
&lt;br /&gt;
=== Pictures of the finished board ===&lt;br /&gt;
[[File:URTC-8.jpg]]&lt;br /&gt;
&lt;br /&gt;
Single board with no battery fitted yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:URTC-8 stacked.jpg]]&lt;br /&gt;
&lt;br /&gt;
A uRTC-8 stacked on a uIDE-8 board using plastic stand offs.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
As of this time (October 2019), the uRTC boards are designed and I have received a set from the fabricators. An initial board has been built and work is completed on the uRTC.COM utility.&lt;br /&gt;
It's ready for ordering.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Along with the device itself, there is downloadable utility.&lt;br /&gt;
* uRTC.COM allows the user to set and get the time on the RTC chip, and transfer the time to the host system's RTC.&lt;br /&gt;
* There will be a version of uRTC.COM for each supported host computer, because transferring the RTC datetime to the computer is different in each case, and the base I/O address may differ.&lt;br /&gt;
&lt;br /&gt;
=== uRTC.COM ===&lt;br /&gt;
&lt;br /&gt;
==== Download link ====&lt;br /&gt;
https://drive.google.com/open?id=1Er7WKz09m9ctzeEk3jxSyDXjDc1OzInK&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
Use to set or display the time and date on uRTC-8, or transfer it to the host computer.&lt;br /&gt;
&lt;br /&gt;
 usage: uRTC - show date and time from the RTC clock&amp;quot;&lt;br /&gt;
        uRTC [[dd/mm/yy] [hh:mm[:ss]]] [-ts|p] [-q] - set RTC day/date/time&amp;quot;&lt;br /&gt;
 		-tp transfer uRTC date/time to CP/M Plus system clock&amp;quot;&lt;br /&gt;
 		-ts transfer uRTC date/time to Superbrain system clock&amp;quot;&lt;br /&gt;
 		-q quiet mode, reports errors only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The following examples should illustrate its use:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 10 Nov 2017 12:42:36&lt;br /&gt;
  A&amp;gt;uRTC 18/12/18&lt;br /&gt;
  Tue 18 Dec 2018 12:42:52&lt;br /&gt;
  A&amp;gt;uRTC 17:05&lt;br /&gt;
  Tue 18 Dec 2018 17:05:00&lt;br /&gt;
  A&amp;gt;uRTC 17:05:55&lt;br /&gt;
  Tue 18 Dec 2018 17:05:55&lt;br /&gt;
  A&amp;gt;uRTC&lt;br /&gt;
  Tue 18 Dec 2018 17:05:13&lt;br /&gt;
  A&amp;gt;uRTC -tp&lt;br /&gt;
  CP/M Plus system time set: Tue 18 Dec 2018 17:05:13&lt;br /&gt;
&lt;br /&gt;
You can combine functions as well; so for example&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;uRTC 19/12/18 -tp&lt;br /&gt;
&lt;br /&gt;
..would set the day of the week to Wednesday and the date to the 19th Dec 2018 on the RTC's clock, then transfer the new date and time to the host computer's system clock.&lt;br /&gt;
&lt;br /&gt;
==== Y2K handling ====&lt;br /&gt;
uRTC.com handles the year 2000 issue in the same way as the Y2K compliant CP/M Plus DATE.COM:&lt;br /&gt;
* When the year entered is before 78, uRTC will assume it is in the 21st century (2000s)&lt;br /&gt;
* When the year entered is 78 or above, uRTC will assume it is in the 20th century (1900s)&lt;br /&gt;
&lt;br /&gt;
The clock chip itself does not store the century.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the PCW ====&lt;br /&gt;
To automatically set the PCW system time, add the following line to the PROFILE.SUB file of the boot disk:&lt;br /&gt;
&lt;br /&gt;
   uRTC -tp&lt;br /&gt;
&lt;br /&gt;
Before first use, set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the CP/M Plus system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
==== Setting the system time automatically on the Superbrain ====&lt;br /&gt;
The Superbrain has no automatic boot command capability; however, if you are using uRTC-8 you can use the XSETCMD.COM program to set an initial boot command. The one you want is:&lt;br /&gt;
&lt;br /&gt;
  uRTC -ts&lt;br /&gt;
&lt;br /&gt;
If you are not using uIDE-8 on your Superbrain, you will have to remember to enter the command manually each time you boot. Advanced users may patch the CCP on the boot disk directly to inject the command.&lt;br /&gt;
&lt;br /&gt;
Before first use, remember to set the uRTC-8 clock time as shown in the usage section. Now, at each boot, the Superbrain system time is set automatically from the battery backed clock on the uRTC-8 board.&lt;br /&gt;
&lt;br /&gt;
=== Additional CP/M software required ===&lt;br /&gt;
You will need the Y2K compliant versions of DATE.COM, DIR.COM and SHOW.COM in order to use uRTC fully. You can download these from [http://www.gaby.de www.gaby.de] specifically, here: [http://www.cpm.z80.de/download/cpm3bin.zip www.cpm.z80.de/download/cpm3bin.zip].&lt;br /&gt;
&lt;br /&gt;
You will also need a copy of INITDIR.COM: [https://drive.google.com/open?id=1EJOk6i24IxBluL8gx61bsn-a5Gl5MGnY Download link]&lt;br /&gt;
&lt;br /&gt;
=== Using timestamps with CP/M plus files ===&lt;br /&gt;
A full description of how to configure a CP/M Plus system for timestamps can be found on page 592 of [[http://www.cpm.z80.de/manuals/cpm3-usr.pdf|the CP/M 3 user guide]].&lt;br /&gt;
&lt;br /&gt;
In a nutshell:&lt;br /&gt;
&lt;br /&gt;
First, use INITDIR [drive] to create space in the drive's directory for the timestamps. For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;INITDIR A:&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to reformat the directory. Don't worry, no files will go missing, but if you attempt this on a drive with many files, it may run out of directory space.&lt;br /&gt;
&lt;br /&gt;
Once the directory is reformatted, you use SET to set the sort of timestamps you want.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [CREATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on file creation timestamps (the time is recorded when a file is created)&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;SET A: [UPDATE=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on update timestamps (the time is recorded when a file is updated)&lt;br /&gt;
&lt;br /&gt;
   A&amp;gt;SET A: [ACCESS=ON]&lt;br /&gt;
&lt;br /&gt;
..will turn on access timestamps (the time is recorded when a file is opened). This option disables CREATE - the two options are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
Now, use DIR with option [FULL] to see the timestamps (after you've created / updated / accessed any files). You will see the timestamps on the far right of the directory listing. Where a timestamp is missing, it means that the file hasn't been accessed / created / updated since the INITDIR operation.&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
This is the technical application manual for the 72421 RTC chip used in uRTC-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rtc72421 appman.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of particular interest are the 16 registers:&lt;br /&gt;
&lt;br /&gt;
 RTCBASE		.equ	0B0h		; uRTC base I/O address (Superbrain version)&lt;br /&gt;
 rtc1sec		.db	RTCBASE+00h	; 1 second digit&lt;br /&gt;
 rtc10sec	.db	RTCBASE+01h	; 10 second digit&lt;br /&gt;
 rtc1min		.db	RTCBASE+02h	; 1 minute digit&lt;br /&gt;
 rtc10min	.db	RTCBASE+03h	; 10 minute digit&lt;br /&gt;
 rtc1hour	.db	RTCBASE+04h	; 1 hour digit&lt;br /&gt;
 rtc10hour	.db	RTCBASE+05h	; 10 hour digit (also AM/PM indicator)&lt;br /&gt;
 rtc1day		.db	RTCBASE+06h	; 1 day digit&lt;br /&gt;
 rtc10day	.db	RTCBASE+07h	; 10 day digit&lt;br /&gt;
 rtc1month	.db	RTCBASE+08h	; 1 month digit&lt;br /&gt;
 rtc10month	.db	RTCBASE+09h	; 10 month digit&lt;br /&gt;
 rtc1year	.db	RTCBASE+0Ah	; 1 year digit&lt;br /&gt;
 rtc10year	.db	RTCBASE+0Bh	; 10 year digit&lt;br /&gt;
 rtcweek		.db	RTCBASE+0Ch	; day of week&lt;br /&gt;
 rtccrtlD	.db	RTCBASE+0Dh	; control register D&lt;br /&gt;
 rtcctrlE	.db	RTCBASE+0Eh	; control register E&lt;br /&gt;
 rtcctrlF	.db	RTCBASE+0Fh	; control register F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uRTC-8 assembled || £37.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (board only) || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (board only, without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a - buy from online action site; &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD, so if you have one lying around you don't need to buy one. If you already use a uIDE card, you can add a connector to the existing cable.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki and Amstrad.ES Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 01/10/2019&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=103732</id>
		<title>UIDE Universal IDE adapter cards for Z-80 computers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UIDE_Universal_IDE_adapter_cards_for_Z-80_computers&amp;diff=103732"/>
				<updated>2019-10-01T20:19:25Z</updated>
		
		<summary type="html">&lt;p&gt;JonB: /* Connectivity options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UIDE-8 v0.5 PCB.png|200px|thumb|right|uIDE-8]]&lt;br /&gt;
[[File:uIDE 16 v0.2.JPG|250px|thumb|right|uIDE-16]]&lt;br /&gt;
== About the uIDE project ==&lt;br /&gt;
The uIDE concept is not terribly new (search for GIDE and you will see what I mean, although these adapters are not available any more).&lt;br /&gt;
&lt;br /&gt;
The idea was to produce a low cost IDE adapter, suitable for connecting to Z-80 computers via a shim board that fits between a (socketed) Z-80 and its main board socket. From the shim, a 40 way IDC cable is connected to the uIDE adapter board, then a CF card or DOM plugs into the other end (if there is space inside your Z-80 computer, you may be able to connect the shim and uIDE cards directly together without a cable). uIDE cards are &amp;quot;universal&amp;quot; because their I/O base address is fully configurable via a row of 2 position jumpers on the board.&lt;br /&gt;
&lt;br /&gt;
Once the hardware is installed, drivers need to be written (see below).&lt;br /&gt;
&lt;br /&gt;
'''uIDE-16''' can be configured for use on any Z-80 microcomputer such as the CPC range of computers. It is called &amp;quot;uIDE-16&amp;quot; because it decodes all 16 address bus lines to provide access to the IDE ATA registers as is required by the Amstrad CPC machines, yet it has an 8-bit addressing mode so that it can be used with other (more normal) Z-80 machines that only use the lower 8 bits of the address bus for I/O addressing. In this mode, some components (U1 and its socket and decoupling capacitor, C1) may be left off the board.&lt;br /&gt;
&lt;br /&gt;
'''uIDE-8''' is a similar design that just decodes the low 8 bits of the Z-80 adddress bus, and this can be used on the PCW and most other Z80 machines but not on the CPC machines. uIDE-16 has a user-configurable 8-bit mode that allows it to work with 8-bit addressed I/O as well.  However, uIDE-8 is slightly smaller and cheaper than uIDE-16.&lt;br /&gt;
&lt;br /&gt;
== Project status ==&lt;br /&gt;
All boards are in production.&lt;br /&gt;
&lt;br /&gt;
Superbrain QD drivers now available.&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Compact design, only 4 ICs (uIDE-16) or 2 ICs (uIDE-8) and a smattering of discrete components. Board measures 79x60mm (uIDE-16).&lt;br /&gt;
* Implemented using cheap, readily available parts (7400-series ICs only, plus some capacitors, resistors and LEDs).&lt;br /&gt;
* Can be connected to the PCW expansion port (see below) or internally via a Z80 shim card (note, this requires a socketed Z80).&lt;br /&gt;
* Does not require a separate 5v power supply (the computer supplies power).&lt;br /&gt;
* Can supply 5v to an attached CF card adapter if necessary. Also supplies +5v via IDE Pin 20, although not all devices use it (hence the additional supply option).&lt;br /&gt;
* Driver supports Amstrad PCW CP/M Plus only at this time (it is implemented as a FID).&lt;br /&gt;
* A separate driver exists for Lifeboat CP/M 2.2 on the TRS-80 Model II that can be ported on demand to other CP/M 2.2 variants.&lt;br /&gt;
* Intertec Superbrain QD now fully supported.&lt;br /&gt;
* The CP/M driver runs the IDE device in LBA / 8 bit mode, so DOMs or CF cards are recommended (at least 128MB is recommended).&lt;br /&gt;
* Fully programmable I/O address decoding (via on-board jumpers). Initial I/O range (uIDE-16, for the as yet unwritten CPC driver) is FEF0-FEF7 and (uIDE-8, for the PCW driver) is C8-CF, but you can change this to suit your own hardware / driver.&lt;br /&gt;
* Can be used on any other Z80 computer with a socketed processor.&lt;br /&gt;
* Implements a standard bus connector that exactly matches the Z80 pinout. &lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* The driver implements a CP/M format on the IDE device, so it is not directly readable on a PC using the Windows File Manager. However, you can use Win32DiskImager to get a copy of the entire disk, then cpmtools to extract files or put them back onto the disk image (see below).&lt;br /&gt;
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).&lt;br /&gt;
* There is no driver support for IDE CD drives.&lt;br /&gt;
* There is no driver support for uIDE-16 on the CPC 6128 yet. I'm working on it.&lt;br /&gt;
* Any IDE device connected to uIDE should support IDE-ATA 8-bit data transfer mode. If you connect a device which only supports 16-bit mode, you may find it is incompatible or has half the expected space available (this is because in ATA 16 bit transfer mode, the interface only uses 8 of the possible 16 transfer bits).&lt;br /&gt;
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).&lt;br /&gt;
* Expect this list to be expanded as more questions are asked!&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Here is a list of download files that are discussed on this page, in one place for convenience.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! Description !! Wiki page section link&lt;br /&gt;
|-&lt;br /&gt;
| [[File:All board BOM 2.csv|framed|All Board BOM version 2]] || Bill of Materials for self builders. Includes all boards. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#BOMs|BOMs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UIDE-PCW.zip|framed|uIDE PCW disk image and utilities]] || ZIP file containing uIDE disk image and utilities for the PCW. '''Release 1.11''' || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#uIDE_disk_image_and_utils_download|uIDE disk image and utilities download]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdriver_PCW_suite_0.1.zip || Zip file containing uIDE utilities and the PCW driver FID file. You don't need this if you are using the uIDE-PCW.img file. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/index.php/File:Xdrv_n.zip || Zip file containing uIDE xdrv.fid v1.11 variants that allocate different numbers of uIDE drives (from 1-12), for use in situations where having many drives slows the PCW down (such as when starting up Locoscript), or you find that CP/M Plus does not have enough memory to support the full compliment of drives, devices and applications you need to run (not a problem I've encountered yet!). || See http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/locoscript-and-fid-files/msg173804 for discussion.&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/ || Announcement thread for the later driver with download and discussion of repair procedure to fix possible problems with the earlier formatter. Use this instead of the v0.1 driver. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Drivers|Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21897 || ZIP file with later CP/M EMS/EMT files that support PCW FID drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#CP.2FM_Plus_version_requirements|CPM Plus version requirements]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]] || uIDE-16 test program for CPC6128. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#Testing_the_IDE_device|Testing the IDE device]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:IDE SPEC.PDF|framed|IDE specification document]] || IDE Specification document, which is needed for writing IDE drivers. || [[UIDE_Universal_IDE_adapter_cards_for_Z-80_computers#More_information|More information]]&lt;br /&gt;
|-&lt;br /&gt;
| https://drive.google.com/open?id=1VyHVd_wvhW6o6_qjQrx_pjYCS9jnaxRn || Intertec Superbrain QD uIDE driver installation package || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Z80 Shims ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 Shim LHS.png|100px|thumb|left|Left handed Z80 Shim card]] || [[File:Z80 Shim RHS.png|100px|thumb|right|Right handed Z80 Shim card]]&lt;br /&gt;
|}&lt;br /&gt;
These small cards are inserted between the Z80 and its socket, and present all 40 pins of the CPU via a 40 way header. This header is the &amp;quot;Z80 Bus&amp;quot; that the uIDE cards connect to.&lt;br /&gt;
&lt;br /&gt;
Choose the one that fits best inside your machine. A CPC6128 needs the left hand shim if you want to fit the uIDE card internally, although space is very tight under the keyboard (the processor sits directly behind the expansion port). You may also fit the RHS shim to a 6128, on the following provisos:&lt;br /&gt;
&lt;br /&gt;
* a) the strain relief bar of the Z80 bus cable that plugs into the shim must be removed (otherwise it fouls the rear case).&lt;br /&gt;
* b) the Z80 bus cable might not be able to bend round to allow internal fitting and&lt;br /&gt;
* c) the Z80 bus cable, when passed out of the expansion port slot, may get in the way of any expansion you have fitted (and it may not, depends on the shape of the expansion unit.&lt;br /&gt;
&lt;br /&gt;
PCW 8000 machines require the LHS shim, because the RHS shim fouls the inside of the case. The good news here is that you can pass the Z80 bus cable through the case at the right hand rear corner (where the keyboard cable plug is) without modifications to the case. If you look closely at the join, you can see there's a short section of case, right on the corner, that has a flat face. Route the cable through this section, and don't tighten the screw on that corner up too hard.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' Check your machine has a socketed Z80 before ordering a shim (you should open it up anyway to decide which shim gives the best mounting solution). If the Z80 does not have a socket and you are not willing to desolder the Z80 and fit a socket to the machine, then a shim is not the solution for you.&lt;br /&gt;
&lt;br /&gt;
== Machine-specific expansion port adapters ==&lt;br /&gt;
Use one of these cards if you prefer to connect your uIDE card to the machine's expansion port rather than via its Z80 socket.&lt;br /&gt;
&lt;br /&gt;
=== PCW 8256/8512/9512 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW bus adapter.JPG|100px|thumb|left|PCW Bus adapter with composite video output]] || [[File:PCW bus adapter lite.JPG|100px|thumb|right|PCW Bus adapter &amp;quot;lite&amp;quot; (no composite video)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These cards allow connection of a uIDE card to the 50 way expansion port on the back of the machine. They are designed to support the PCW edge connector type port, but the European Centronics type port might be accommodated if a suitable connector exists (50 way Centronics, 2.54 header pitch). In addition they provide access to the PCW's 5v and 12v power supply, as well as other signals from the card edge connector. One variant has a small composite video circuit so that you can connect an external monitor to the PCW.&lt;br /&gt;
&lt;br /&gt;
=== CPC 6128 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]&lt;br /&gt;
|}&lt;br /&gt;
The CPC 6128 bus adapter is a card which plugs directly into the 6128's expansion port with the front face of the board facing away from the CPC. The image shows an early render from OSH Park. Per the other adapter cards, uIDE plugs into it via a 40 way IDC cable.&lt;br /&gt;
&lt;br /&gt;
== BOMs ==&lt;br /&gt;
&lt;br /&gt;
For self assemblers, I drew up a parts list broken down by board with Farnell order numbers. I recommend you shop round for these parts, after seeing what they look like on Farnell. Also, you have options where there are alternatives shown. In particular, with the edge and IDC connectors, consider how you wish to mount and connect the boards and select the connector appropriately. The exapansion interfaces are designed to have an edge connector soldered to the back of the board, so that it sits over the slot with the components facing away from you (if you are sitting in front of the computer), but if you choose to use a 50 way IDC connector (with cable to expansion port) then you can mount it on the component side of the board.&lt;br /&gt;
&lt;br /&gt;
[[File:All board BOM 2.csv|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
== Connectivity options ==&lt;br /&gt;
Here is a table summarising your options for connecting a uIDE device to your computer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE connection options.JPG|500px||left|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Choose one option from each column. Some guidance notes:&lt;br /&gt;
* Expansion adapters connect to the rear edge connector of your PCW or 6128. Choose one if you don't want to fit the uIDE internally or your Z80 is not socketed.&lt;br /&gt;
* Z80 shims are for general purpose use and will fit any Z80 machine with a socketed processor. Choose LHS or RHS dependant on the space and orientation of the CPU in your machine.&lt;br /&gt;
* Direct connection (between the host adapter and uIDE device) means soldering the Z80 bus header pins on each board directly together. Note, some combinations may prevent this, or may require odd orientation of the two cards.&lt;br /&gt;
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.&lt;br /&gt;
* A DOM is recommended as it is the only device I have tested the uIDE prototype with. Unfortunately, I can't guarantee that specific Compact Flash cards will be compatible but if you let me know what works and what doesn't we can build a compatibility list on this page.&lt;br /&gt;
* uIDE-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16.&lt;br /&gt;
&lt;br /&gt;
=== Special notes for uRTC-8 users ===&lt;br /&gt;
* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.&lt;br /&gt;
* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.&lt;br /&gt;
&lt;br /&gt;
== Information for self builders ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly advice ===&lt;br /&gt;
I have written this section with the inexperienced electronic hobbyist in mind. If you are a hot shot with a soldering iron, please don't be offended!&lt;br /&gt;
&lt;br /&gt;
Assembly is fairly straightforward, you just need to watch the orientation of the connectors (check twice before soldering) and polarised components (LEDs and electrolytic capacitor). The boards all have silk screen printed component pads with names and values showing, so it is very difficult to get it wrong. Read this section before proceeding, and if in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
==== Order of assembly ====&lt;br /&gt;
The general order of assembly of uIDE boards is to fit the shortest components first, because it makes handling the board easier if you are laying it on a flat surface to solder:-&lt;br /&gt;
* Solder in the resistors, LEDs (watch the orientation, see below), 100nf capacitors (the tiny ones).&lt;br /&gt;
* Fit the pin headers (JP1, JP2, etc, making sure they are upright. I use an IDC plug for this and solder one pin, then adjust, then solder in all the other pins).&lt;br /&gt;
* Next fit the IC sockets, matching the orientation of the notch against the outline on the board.&lt;br /&gt;
* Fit the Z80 bus and IDE sockets (making sure they are square). Check the orientation of Pin 1 before soldering and note that, if you use a boxed header, the cutout should align with the cutout on the board outline, or face the same way as Pin 1 of the footprint. Examine the pictures and if in doubt, ask.&lt;br /&gt;
* The last thing to fit is the 47uF capacitor (C5), because it is the tallest component (watch the orientation, see below).&lt;br /&gt;
* Apply any fixes required to the board (see below).&lt;br /&gt;
* Fit the jumper plugs according to the board configuration section below.&lt;br /&gt;
&lt;br /&gt;
The adapter board assembly order is not so critical. I usually fit the 50 way edge connector first, then clamp it in my bench vise to place the other components.&lt;br /&gt;
&lt;br /&gt;
==== LEDs and electrolytic capacitor ====&lt;br /&gt;
Be sure that you put the LEDs and electrolytic capacitor in the right way round. &lt;br /&gt;
* With LEDs, the shorter leg is the negative end and it goes into the square pad (longer leg into the round pad). &lt;br /&gt;
* Electrolytic caps are the same, they have a long leg (positive) and a short leg (negative, often marked with a - sign or black bar on the side of the capacitor can). Match the positive leg with the pad that is marked with a + sign on the PCB.&lt;br /&gt;
&lt;br /&gt;
==== Z80 Shims ====&lt;br /&gt;
When building a z80 shim, choose a set of header pins for the legs you are plugging into the Z80 socket on the computer's motherboard that are thin (do not use the the standard type otherwise the Z80 socket will be damaged). Take a look at the pictures of the shims to see what I mean. Solder these headers in first, because the Z80 socket you solder to the shim probably won't let you get access to the pin header once fitted. Make sure they are straight - I use a small IDC connector plugged into the pins and clamped in a vise to hold them straight during soldering, like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Keeping shim legs straight.jpg|thumb|Using a vice and small IDC connector plug to keep the Z80 shim legs straight when soldering.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin headers shown below are the main options when building a Z80 shim.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Shim leg options.jpg|thumb|Various types of pin headers.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The one to the right is the optimal choice, it has gold plated pins with a circular cross section having a diameter of about .45mm. The shorter end is soldered into the pad on the shim board from the underside. This pin design gives more clearance on the top side of the board for you to fit a low profile IC socket, saving height. I use these when building shims for other people.&lt;br /&gt;
* The middle one is a &amp;quot;standard&amp;quot; pin header with a square cross section and width of about .65mm. Avoid like the plague, as it will damage the main board socket.&lt;br /&gt;
* The left hand one is a sort of combined pin and socket with an acceptable diameter end. It looks tall but as it includes the socket pins it makes the shim easier to build.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of the left hand one in situ. The Z80 sits a bit higher than the first option.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Z80 shim combined pin-socket option.jpg|thumb|Using the combined pin/socket legs to make a Z80 shim.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the shim's bus connector footprint, pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad (all the others are round). Use an unboxed 40 way right angled pin header for this, as shown in the photos on this page, or you may find space is too tight inside the computer, and check the orientation of the header and cable is correct before soldering the header in. The header should be fitted to the top side of the board, as shown in the shim pictures.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 fix for 8-bit mode ===&lt;br /&gt;
The current version of uIDE-16 (v0.3) has some errors that prevent the 8-bit addressing mode from working. If you want to use it in 8-bit addressing mode, some modifications are required as shown below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-16 v0.3 8-bit fix.PNG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the underside of the board:&lt;br /&gt;
* Cut the tracks marked with a red disk.&lt;br /&gt;
* Add the links marked with a green disk.&lt;br /&gt;
&lt;br /&gt;
Please note, for the CPC6128 you use 16-bit addressing mode, and these modifications are unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 &amp;quot;red&amp;quot; boards ===&lt;br /&gt;
The uIDE-8 red boards are a previous version of the blue boards and have some minor problems which can be corrected easily.&lt;br /&gt;
&lt;br /&gt;
* The CF_PWR connector has no +5v, due to a pair of missing vias. To fix, insert a link wire as shown in the picture in green. However, you may not need this as certain devices like DOMs can take power from pin 20 of the IDE connector.&lt;br /&gt;
* The through holes for the transistor Q1 (shown with a yellow dot) are tight. You may need to drill them out and this will remove the via, so apply solder on both sides of the PCB around Q1's legs. Alternatively, you can surface mount the transistor by bending its legs into feet and standing it on the pads, then carefully solder them. A bit fiddly, but will work.&lt;br /&gt;
* The I/O address jumpers are upside down compared to the blue boards. Set the address with reference to the 1 and 0 as printed on the red PCB, not as photoed on this page (the address is the same).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Uide-8 red.JPG|thumbnail|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter video circuit fix ===&lt;br /&gt;
Due to an error in the schematic capture, the video circuit on the PCW Expansion port adapter isn't actually connected to the PCW. The fix is straightforward and involves putting in a couple of jumper wires as follows:&lt;br /&gt;
&lt;br /&gt;
* Connect Expansion port connector Pin 44 to U1 pin 1&lt;br /&gt;
* Connect Expansion port connector Pin 46 to U1 pin 4&lt;br /&gt;
&lt;br /&gt;
If you use copper wire such as you find on a transformer or prototyping wire, you can connect these pads before assembling the expansion port connector and U1's socket. It's best to lay these on the underside of the board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port adapter video fix.JPG|thumb|Shows the required fix for uIDE PCW Expansion port adapter video circuit.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And once fixed, the video circuit works nicely, giving a good clean signal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW Expansion port video.JPG|thumb|uIDE PCW Expansion port adapter video circuit in action]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may find it necessary to adjust the trimmer to get a signal. When assembling, set the trimmer about half way to begin with, then adjust it in situ until the best picture is obtained.&lt;br /&gt;
&lt;br /&gt;
=== PCW Expansion port adapter composite video cable ===&lt;br /&gt;
If you want to connect a PCW Expansion port adapter to a display, you're going to need to make up a suitable video cable. The composite video signal is on the pad closest to the trimmer, with the ground pin next to it. This is marked on the board in tiny lettering. If you use a double pin header to populate the video output pads on the PCB (as I do when building them for other people), your cable should look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:PCW composite video cable.JPG|thumb|Typical composite video cable fitted to the PCW Expansion port adapter.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The wires connected to the PCB are:&lt;br /&gt;
* Yellow - Composite Video&lt;br /&gt;
* Black - signal ground&lt;br /&gt;
&lt;br /&gt;
I use a female phono plug, cable mounted, connected to the copper shielded cable (standard audio cable, male phono to male phono), which is in turn connected to the Video input of a SCART adapter. This plugs into the back of a TV. Depending on your TV / monitor, you may need a different plug on the end of your cable.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus cable ===&lt;br /&gt;
A &amp;quot;Z80 Bus cable&amp;quot; is merely a 40 way IDC ribbon cable with female plugs at either end. You find these in use inside old PCs, connecting the mother board to an IDE hard drive. If you want to make your own, the only thing to be aware of is the orientation of the cable with respect to the locating tab on the plugs. Consider these pictures:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus cable.jpg|thumb|Short Z80 bus cable.]] || [[File:Z80 bus cable detail.jpg|thumb|Z80 Bus cable, top side, showing the IDC plug's strain relief bar.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On the left is a typical cable. The red painted wire in the foreground is PIN 1. You can see that the tab is on the left hand side of the plug and this is standard. Now look at the right hand picture. With the plug flipped and the red wire again in the foreground, the tab is on the right hand side. There is also a strain relief bar fitted, which helps prevent the plug from coming apart when being removed from a socket. This turns the ribbon wire 180 degrees, so you can imagine there is room for error when making these cables up. My advice would be to lay out the cable, put the plugs in situ (but don't crimp them yet) and check them against the uIDE and expansion port adapter before completing assembly. For the Z80 shim, you just need to ensure that you can connect pin 1 to the pad marked &amp;quot;A11&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some more pictures, this time with the strain bar removed and the cable folded out. Study these carefully before making your cable or connecting a ready made IDC cable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Short Z80 Bus cable.JPG|thumb|Note the position of the key tab on the connectors, and that the two plugs are on opposite faces of the cable, one facing up, the other facing down]] ||[[File:Short Z80 Bus cable folded.JPG|thumb|When folded over, the tabs align on the same side of the plugs.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uIDE-8 74LS02 considerations ===&lt;br /&gt;
The timing of the Z80 /RD signal is very tight, so the choice of NOR gate IC that you put at U2 is critical. Choose a fast part such as a 74'''F'''02. At least one manufacturer, Misubishi, makes a fast enough 74'''LS'''02 and that is what I used in my prototype. It has a propagation delay of 6-15ns, and the typical delay is somewhere in between, say 9ns. This appears to be the lowest speed the design will allow, although I have only tested with a few '02 variants. If in doubt, check the manufacturer's datasheet and don't buy anything with an average propagation delay larger than say 9ns. I've listed the delay times for several different '02 logic chips below. It's quite surprising what the propagation time range is for parts that are supposedly &amp;quot;standard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: In the table, &amp;quot;Likely&amp;quot; means &amp;quot;my best guess based on the published propagation delay times&amp;quot;. Avoid anything that is &amp;quot;Not compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''74??02 Propagation times'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maker / type !! tPHL min !! tPLH min !! tPHL max !! tPLH max !! Datasheet !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Motorola SN74ALS02 || 14 || 14 || 22 || 22 || http://pdf1.alldatasheet.com/datasheet-pdf/view/5703/MOTOROLA/SN74LS32.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI SN74LS02 || 8 || 12 || 15 || 22 || http://www.ti.com/lit/ds/symlink/sn74ls02.pdf || Not compatible (tested)&lt;br /&gt;
|-&lt;br /&gt;
| Hitachi 74LS02 || 10 || 10 || 15 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/63971/HITACHI/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Mitsubishi 74LS02 || 6 || 6 || 15 || 15 || http://www.datasheetspdf.com/datasheet/download.php?id=770368 || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP ALS02 || 2 || 2 || 10 || 12 || http://pdf1.alldatasheet.com/datasheet-pdf/view/15231/PHILIPS/74ALS02.html || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild LS02 || - || - || 18 || 15 || http://pdf1.alldatasheet.com/datasheet-pdf/view/51020/FAIRCHILD/74LS02.html || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74S02 || 8 || 12 || 16 || 22 || http://www.futurlec.com/74S/74S02.shtml || Not compatible&lt;br /&gt;
|-&lt;br /&gt;
| Tesla 74ALS02 ||  ||  || 12 ||  || || Likely not compatible&lt;br /&gt;
|-&lt;br /&gt;
| TI 74F02 || 1 || 1.7 || 5.3 || 6.5 || http://www.ti.com/lit/ds/symlink/sn74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Fairchild 74F02 || 1.5 || 2.5 || 4.3 || 5.5 || http://www.futurlec.com/74F/74F02.shtml || '''Compatible (tested)'''&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74HCT02 ||  || || 7 || 9 || http://www.futurlec.com/74HCT/74HCT02.shtml || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Philips 74F02 || 2 || 2.5 || 4.3 || 5.5 || http://pdf.datasheetcatalog.com/datasheet/philips/74f02.pdf || Likely compatible&lt;br /&gt;
|-&lt;br /&gt;
| Signetics 74F02 || 2 || 2.5 || 4.3 || 5.5 || p.73 of http://bitsavers.informatik.uni-stuttgart.de/pdf/signetics/_dataBooks/1987_FAST_Data_Manual.pdf || Likely compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Curiously, I received a new batch of TI SN74LS02s that work with uIDE-8, so perhaps you should try any you have in your parts box first. However, if in doubt, choose a '''74F02''' or known working type shown above. If you find working types that are not listed, or are shown as not compatible, please let me know so I can update the list.&lt;br /&gt;
&lt;br /&gt;
As a result of this investigation, the BOM was updated to specify a '''74F02''' for U2.&lt;br /&gt;
&lt;br /&gt;
=== PCW and 6128 Expansion Port 50 way edge connector ===&lt;br /&gt;
I made a mistake with the row spacing on the boards so it will be necessary to bend the two pin rows inwards so they nearly touch, then bend them out about 1/2 way down each leg with needle nose pliers. Really sorry about that. But it's reasonably easy to do if you're careful.&lt;br /&gt;
&lt;br /&gt;
I posted this picture on the forum, and I hope it illustrates the point.&lt;br /&gt;
&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/?action=dlattach;attach=21948;image&lt;br /&gt;
&lt;br /&gt;
The rows on the PCB are 2.54mm apart, which is fine if you want to fit a 50 way box header and use a 50 way IDC connector to 50 way IDC edge connector cable, but not fine for fitting this type of edge connector. Hence a little bit of hackery being necessary when fitting the edge connector directly to the adapter board.&lt;br /&gt;
&lt;br /&gt;
I found when building a board for someone that it is easier to leave one row of pins straight, and use needle pliers to bend the other row's pins into a sort of Z shape. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Marking the pins.png|thumb|1. Mark the pins on the edge connector. Drag a pencil across the pins, about 1mm above the point where the pin narrows.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Bending the pins.png|thumb|2. Bending the pins on the edge connector. Bend one pin at a time, and line up the tip of the pliers with the pencil mark on each leg. Keep the pliers perpendicular to the back of the connector and move them inwards and downwards, holding the connector firmly.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Trial fitting to the expansion port adapter board.jpg|thumb|3. Trial fitting to the expansion port adapter board. Make adjustments here, and once all the pins are in the holes, press the board and connector together firmly.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Connector sitting square.jpg|thumb|4. You are looking to ensure the connector is sitting square on the adapter board.]]&lt;br /&gt;
||&lt;br /&gt;
| [[File:Close up of solder side of the connector.jpg|thumb|5. Close up of solder side of the connector. Check that all the bent pins are showing before beginning to solder the connector to the board. If a pin is missing, check it has not folded underneath the connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the edge connector must be fitted so that it comes out of the '''back''' of the board. Please check the pictures of the finished boards and ensure you get this right. If in doubt, contact me.&lt;br /&gt;
&lt;br /&gt;
== Pictures of the built boards ==&lt;br /&gt;
I present here some photos of the finished boards for reference. Click on an image for a closer look.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:UIDE-8 build.JPG|thumbnail|left|uIDE-8 card built and configured for the PCW]] || [[File:UIDE-16 build 2.JPG|thumbnail|center|uIDE-16 card built and configured for the CPC6128]] || [[File:Expansion port adapters front.JPG|thumbnail|right|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, front view.]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Expansion port adapters rear.JPG|thumb|left|(bottom to top) PCW video, PCW lite and CPC6128 expansion port Z80 bus adapters, underside view.]] || [[File:Z80 LHS Shim build.JPG|thumb|center|Z-80 Shim, left hand bus connector.]] || [[File:Z80 RHS shim build.JPG|thumb|right|Z-80 Shim, right hand bus connector.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* uIDE-8 is configured for the PCW driver's I/O address. Note the jumper settings.&lt;br /&gt;
* uIDE-16 is configured for the proposed 6128 driver's I/O address, and is set for 16-bit mode, Again, note the jumper settings.&lt;br /&gt;
* If you are building uIDE for a specific machine, you can solder links in place rather than fit header pins and jumper shunts to save money. However, ensure the address configuration is correct before soldering the links!&lt;br /&gt;
* The expansion port pictures show (front to back, respectively) the PCW video adapter, PCW &amp;quot;lite&amp;quot; adapter, 6128 adapter.&lt;br /&gt;
&lt;br /&gt;
== I/O Address configuration ==&lt;br /&gt;
=== uIDE-8 for the PCW ===&lt;br /&gt;
The I/O base address for the PCW uIDE-8 driver is '''C8'''.&lt;br /&gt;
To configure the jumper at '''JP1''' on uIDE-8 for the PCW driver, use the example settings printed on the board. The individual jumpers are labelled '''A7-A3''', and you should set the jumpers like this: '''A7=1, A6=1, A5=0, A4=0, A3=1'''. This is the top 5 bits of the hexadecimal value C8.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the PCW ===&lt;br /&gt;
uIDE-16 needs slightly different settings to work on a PCW. It still needs to be configured for the base address '''C8''', but there are some extra steps:&lt;br /&gt;
* First, check that the 8-bit addressing mode fix has been applied. See the build section above. If it's not been done, you will not be able to use uIDE-16 on a PCW.&lt;br /&gt;
* Next, set '''JP2''' to '''8 bit'''.&lt;br /&gt;
* Set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This coincides with the 6128 uIDE-16 I/O upper byte address (FE) and isn't really necessary as the setting is ignored when the card is in 8-bit address mode. But you need somewhere to keep the jumpers so they don't get lost...&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=0, A4=0, A3=1'''.&lt;br /&gt;
* If you are building uIDE-16 yourself and plan to run it in 8-bit addressing mode all the time, you could skip fitting '''U2'''. If your uIDE-16 was supplied ready built, don't remove U2 as it will cause unnecessary wear on the IC socket.&lt;br /&gt;
&lt;br /&gt;
=== uIDE-16 for the CPC6128 ===&lt;br /&gt;
uIDE-16 operates at the base address '''FEF0''', so to set this up:&lt;br /&gt;
* First, set '''JP2''' to &amp;quot;'''16 bit'''&amp;quot;&lt;br /&gt;
* Now, set '''A15-A8''' to '''1, 1, 1, 1, 1, 1, 1, 0''' respectively. This is the 6128 uIDE-16 I/O upper byte address (FE).&lt;br /&gt;
* Finally, set '''A7-A3''' to '''A7=1, A6=1, A5=1, A4=1, A3=0'''. This is the upper 5 bits of the hex value F0.&lt;br /&gt;
&lt;br /&gt;
'''Please, double check the jumper settings on your board and compare them with the pictures above of the finished boards before asking for help.'''&lt;br /&gt;
&lt;br /&gt;
== '''Warnings''' ==&lt;br /&gt;
A few golden rules to bear in mind when connecting the the uIDE cards to a computer.&lt;br /&gt;
&lt;br /&gt;
* '''Never''' attempt to connect or disconnect a uIDE card to a computer with the power on. Always switch the machine off first.&lt;br /&gt;
* The storage device (DOM or CF card) is '''not''' &amp;quot;hot swappable&amp;quot;. Turn the computer off before removing the storage device from the uIDE card.&lt;br /&gt;
* If the uIDE device is external, protect it from stray metal objects on your desk. We don't want any short circuits, as these could damage your computer or cause it to crash.&lt;br /&gt;
* If you are using a Z80 shim, take great care when removing the Z80 from its socket, and inserting it in the shim's socket. Attach the Z80 bus cable to the shim before attempting to plug it into the computer's Z80 socket, and again, take care when doing so. If your shim was assembled by me, the pins are gold plated and quite thin so as not to damage your computer's Z80 socket. They are easily broken, so be gentle.&lt;br /&gt;
* Pay attention to the orientation of expansion adapter cards on the back of the PCW. Fit them with the LED at the top (8256/8512). 6128 and PCW 9512 adapters are fitted on their side, with the LED right most as you face the rear of the machine. Refer to the section on connecting for pictures.&lt;br /&gt;
* The Z80 shims are fitted with unboxed pin headers to save space. Pin 1 is labelled &amp;quot;A11&amp;quot; and has a square pad.&lt;br /&gt;
* 40 way IDC cables identify the side where pin 1 is situated by having the outer wire coloured (usually red). Look at the pictures (especially of the Z80 shims) and ensure you fit it correctly.&lt;br /&gt;
&lt;br /&gt;
== Correct way to connect the uIDE boards to the computer's expansion port ==&lt;br /&gt;
&lt;br /&gt;
=== PCW 8000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 8256 / 8512 '''with the power light at the top'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:8512 uIDE.JPG|thumb|Correct way to fit the expansion port adapter and uIDE to the back of a PCW 8256: LED at the top. (Picture shows a uIDE-16 but the orientation of the uIDE-8 with respect to the cable is the same.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note: On the red adapter board, the Z80 bus cable is on the other side of the expansion port, but the red light is still at the top.'''&lt;br /&gt;
&lt;br /&gt;
=== PCW 9000 series machines ===&lt;br /&gt;
The PCW expansion port adapters are connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:9512 uIDE.JPG|thumb|Correct way to connect expansion port adapter and uIDE to a 9512 expansion port: Adapter's LED on the RIGHT. (Picture shows a uIDE-16 but the orientation of a uIDE-8 is the same with respect to the cable.)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 machines ===&lt;br /&gt;
The 6128 expansion port adapter is connected to the back of the PCW 9512 '''with the power light to the right'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:6128-uIDE-16 connection.jpg|thumb|Correct way to fit the expansion port adapter to the back of a CPC6128: LED on the right hand side.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fitting a Z80 shim to the PCW 8000 series ==&lt;br /&gt;
These pictures will help you fit a uIDE-LHS shim combination to a PCW 8000 series machine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 shim PCW fitment.jpg|thumb|The Z80 LHS shim fitted to the main board of a PCW 8512. The computer is face down in this picture. Note the orientation of the Z80 bus cable with respect to the shim's right angled header, The red wire (pin 1) is closest to the pin labelled &amp;quot;A11&amp;quot; on the shim (actually, Pin 1 of the Z80). If you want to have the uIDE accessible, you can pass the ribbon cable through the corner of the case.]] ||[[File:Z80 shim cable exit.jpg|thumb|With the case reassembled, the bus cable can exit the cabinet at the lower right corner without being damaged. Don't overtighten the corner screw, though.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Testing the IDE device with XTEST.COM ==&lt;br /&gt;
In the PCW driver distribution there is a program called XTEST.COM that tests and returns information about connected IDE devices.&lt;br /&gt;
&lt;br /&gt;
There is also a version of XTEST.COM for CPC6128 CP/M Plus that you can use to check that your uIDE-16 is working correctly: [[File:XTEST-6128.zip|XTEST for CPC6128 / uIDE-16]]&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XTEST, followed by any combination of the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
  -t[m|s]	perform IDE diagnostic on m (master) or s (slave)&lt;br /&gt;
  -s[m|s]	summary info on m (master) or s (slave)&lt;br /&gt;
  -i[m|s]	interrogate m (master) or s (slave), full report&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XTEST prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
* Note: For the PCW and 6128, you should always use the &amp;quot;master&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Running the uIDE test program on a 6128.jpg|thumb|Running the uIDE test program on a 6128 with a PQI 128mb DOM fitted.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interpreting results ===&lt;br /&gt;
==== Errors ====&lt;br /&gt;
If XTEST reports the drive is not found or has timed out, or you do not get a sensible looking result in the summary / full report text fields, it is likely that your uIDE is not connected properly, there was an error in assembly or configuration, or you are using an IDE device that is not compatible. If you're using a CF card with adapter, make sure that power is getting to the adapter board (see CF card section for details). The IDE device should return meaningful values in these fields. For example, the 128Mb PQi DOMs return the string &amp;quot;PQI IDE DiskOnModule&amp;quot; in the CtrlModel field (left justified, space padded per the IDE spec).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic ====&lt;br /&gt;
The diagnostic result shows the values of the Status and Error registers&lt;br /&gt;
in hexadecimal, following an IDE Diagnostic command (90h).&lt;br /&gt;
The Error register is only valid if bit zero of the Status register is set.&lt;br /&gt;
Refer to the IDE spec in the downloads section, Section 9.7 (&amp;quot;Execute drive diagnostic&amp;quot;) for details.&lt;br /&gt;
&lt;br /&gt;
==== Summary information ====&lt;br /&gt;
The summary information returns the text fields from the IDE Identify Drive&lt;br /&gt;
command (ECh). They are the Model Number (&amp;quot;CtrlModl&amp;quot;), Serial Number&lt;br /&gt;
(&amp;quot;CtrlSer&amp;quot;) and Firmware Revision (&amp;quot;CtrlRev&amp;quot;) fields from Table 10 in the&lt;br /&gt;
IDE spec (Identify Drive, Section 9.9).&lt;br /&gt;
&lt;br /&gt;
==== Full report ====&lt;br /&gt;
The full report contains all the fields returned by the IDE Identify Drive&lt;br /&gt;
command (ECh). Refer to Table 10 in the IDE spec (Identify Drive, Section&lt;br /&gt;
9.9). The fields are identified by a word offset, but XTEST uses a specific label for each.&lt;br /&gt;
To locate the correct description for the XTEST label, refer to this table:&lt;br /&gt;
&lt;br /&gt;
  XTEST label	Word	Comment&lt;br /&gt;
  --------------- ------- -----------------------------------------------------&lt;br /&gt;
  Config		0	General configuration bit field&lt;br /&gt;
  NumCyls	1	Number of cylinders&lt;br /&gt;
  res0		2	Reserved&lt;br /&gt;
  NumHeads	3	Number of heads&lt;br /&gt;
  BytesPerTrk	4	Number of unformatted bytes per track&lt;br /&gt;
  BytesPerSec	5	Number of unformatted bytes per sector&lt;br /&gt;
  SecsPerTrack	6	Number of sectors per track&lt;br /&gt;
  d1		7	Vendor specific&lt;br /&gt;
  d2		8	Vendor specific&lt;br /&gt;
  d3		9	Vendor specific&lt;br /&gt;
  SerNo		10-19	IDE device serial number&lt;br /&gt;
  BuffType	20	Buffer type&lt;br /&gt;
  BuffSize	21	Buffer size in 512 bye increments (so, 1 = 512 bytes)&lt;br /&gt;
  ECCBytes	22	Number of ECC bytes available on r/w long commands&lt;br /&gt;
  CtrlRev	23-26	IDE device firmware revision&lt;br /&gt;
  CtrlModl	27-46	IDE device model designation string&lt;br /&gt;
  SecsPerInt	47	Bits 0-7 gives sector tx max for r/w multiple cmds&lt;br /&gt;
  DblWordFlag	48	0001h = can perform double word i/o, else cannot&lt;br /&gt;
  Capabilities	49	Bit 9: LBA Supported / Bit 8: DMA supported&lt;br /&gt;
  res1		50	Reserved&lt;br /&gt;
  PIOtiming	51	Bits 8-15: PIO data transfer cycle timing mode&lt;br /&gt;
  DMAtiming	52	Bits 8-15: DMA data transfer cycle timing mode&lt;br /&gt;
  res2		53	Reserved&lt;br /&gt;
  CurCyls	54	Number of current cylinders&lt;br /&gt;
  CurHeads	55	Number of current heads&lt;br /&gt;
  CurSPT		56	Number of current sectors (per track)&lt;br /&gt;
  SecCapLo	57	Device sector capacity low byte&lt;br /&gt;
  SecCapHi	58	Device sector capacity high byte&lt;br /&gt;
  SecParams	59	Refer to IDE Spec&lt;br /&gt;
  LBASecCapLo	60	Total number of sectors in LBA mode (low byte)&lt;br /&gt;
  LBASecCapHi	61	Total number of sectors in LBA mode (high byte)&lt;br /&gt;
  swDMATxModes	62	Refer to IDE spec table 10&lt;br /&gt;
  mwDMATxModes	63	Refer to IDE spec table 10&lt;br /&gt;
&lt;br /&gt;
SecCap and LBASecCap are 32 bit integers, and are printed in the correct&lt;br /&gt;
order as hexadecimal in the report. To get the full value, concatenate&lt;br /&gt;
them and feed the resulting value into a calculator with hex conversion.&lt;br /&gt;
For example, a PQI 128Mb DOM has SecCapHi of 0003 and SecCapLo of E800h,&lt;br /&gt;
which gives the value 0003E800. This is 256,000 sectors (in base 10), not quite 128MB.&lt;br /&gt;
&lt;br /&gt;
== Using the formatter XFORMAT.COM ==&lt;br /&gt;
XFORMAT is the program used to prepare a master or slave IDE device&lt;br /&gt;
for use by formatting it.&lt;br /&gt;
&lt;br /&gt;
To use, issue the command XFORMAT followed by any combination of&lt;br /&gt;
the following options:&lt;br /&gt;
&lt;br /&gt;
  -m	format the IDE Master device&lt;br /&gt;
  -s	format the IDE Slave device&lt;br /&gt;
  -f	force format (does not ask for confirmation)&lt;br /&gt;
  -q	quiet mode, only prints confirmation and error messages&lt;br /&gt;
  -h	prints the help message and exits without formatting&lt;br /&gt;
&lt;br /&gt;
If you do not enter any options, XFORMAT prints the help message and exits.&lt;br /&gt;
&lt;br /&gt;
XFORMAT does not assume a default for -m or -s, because formatting a drive&lt;br /&gt;
removes all the drive's data, and we don't want this happening accidentally.&lt;br /&gt;
&lt;br /&gt;
When you specify -m or -s, XFORMAT will format the specified devices and&lt;br /&gt;
for each one, ask for confirmation (unless -f is specified). At this point&lt;br /&gt;
you must enter y to proceeed (upper or lower case), or any other character&lt;br /&gt;
to cancel. XFORMAT will then report on each partition (logical drive)&lt;br /&gt;
as it is being formatted, by way of an ascending counter from 00 to 15.&lt;br /&gt;
&lt;br /&gt;
When you specify -s, XFORMAT will print an error if no slave drive is&lt;br /&gt;
attached to the uIDE interface.&lt;br /&gt;
&lt;br /&gt;
Formatting assumes a minimum of 128MB available on the IDE device(s) being&lt;br /&gt;
formatted. Since each partition has 8MB of space, a 128MB IDE device will&lt;br /&gt;
yield 16 8MB partitions (but note that certain devices, such as the PQI DOM, have just short of 128MB because they round the number of 512 byte sectors down).&lt;br /&gt;
&lt;br /&gt;
Using smaller IDE devices is possible though not recommended as no tests&lt;br /&gt;
have been carried out.&lt;br /&gt;
&lt;br /&gt;
You can use XFORMAT at any time. On CP/M 2.2, if the XDRIVER is loaded, XFORMAT issues&lt;br /&gt;
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation&lt;br /&gt;
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.&lt;br /&gt;
&lt;br /&gt;
== About XRST.COM ==&lt;br /&gt;
XRST is a small utility to reset the CP/M disk system.&lt;br /&gt;
&lt;br /&gt;
It's simple program that just calls the CP/M BDOS function 13 (DRV_ALLRESET) - Reset discs. You can read about the BDOS functions, including DRV_ALLRESET, here: http://www.seasip.info/Cpm/bdos.html&lt;br /&gt;
&lt;br /&gt;
It is recommended you call XRST after formatting a uIDE drive with XFORMAT on CP/M Plus, because XFORMAT writes to the disk directly so the BDOS won't know that the disk buffers are stale.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
=== Amstrad PCW ===&lt;br /&gt;
There is a driver for the PCW which is a FID (&amp;quot;Field Installable Driver&amp;quot;) file. To install it, simply copy it to your boot disk (USER 0). Not all CP/M Plus versions support FIDs though (notably the earlier ones - see below). &lt;br /&gt;
&lt;br /&gt;
The driver's capabilities are:&lt;br /&gt;
* No configuration needed, just copy the XDRV.FID file onto the boot disk and CP/M Plus does the rest at next boot (if it is a recent enough version).&lt;br /&gt;
* Auto detection of the uIDE card, unloads if not found.&lt;br /&gt;
* Provides up to 6 CP/M drives C: D: E: F: G: H:. This appears to be a limitation of the Amstrad CP/M Plus memory map. Depending on what expansions you have connected to the PCW, you may have fewer than this (for example, if the Amstrad CPS8256 Serial/Parallel device is fitted, you lose H:).&lt;br /&gt;
* A later version exists that gives the full complement of drives, see below in bold and the Downloads section above.&lt;br /&gt;
* Is compatible with the CP/M Plus M: drive.&lt;br /&gt;
* Provides additional drives under Locoscript - H: I: J: K: L:.&lt;br /&gt;
* Each drive is 8MB in size, and supports 512 directory entries shared between 16 user areas.&lt;br /&gt;
* A formatter and some IDE test utilities are provided as part of the driver suite (see above). Use the formatter to prepare a CF card or DOM prior to use. Use the test utility to verify that your uIDE is connected properly and the DOM or CFD card is compatible.&lt;br /&gt;
&lt;br /&gt;
The provisional PCW driver suite can be downloaded here: [[File:Xdriver PCW suite 0.1.zip|framed|PCW CP/M Plus Xdriver suite]]. This contains the driver FID file and the utilities described on this page (apart from XFMT.COM which is a short version of XFORMAT.COM).&lt;br /&gt;
&lt;br /&gt;
If you are using the PCW image download or one of my DOMs, you do not need this download as the files are all on on the image / DOM. Read on... ;)&lt;br /&gt;
&lt;br /&gt;
'''A later version of the PCW driver suite is here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/announce-pcw-xdriver-suite-v1-11-for-uide-users/. This gives access to more CP/M drives without needing a reformat, and has a new formatter as there was a bug in the old one. The thread also discusses how to fix the old format non destructively.'''&lt;br /&gt;
&lt;br /&gt;
=== Amstrad CPC6128 ===&lt;br /&gt;
'''Note: There are no drivers available for the CPC6128 at this time.''' (But I am working on it!)&lt;br /&gt;
&lt;br /&gt;
=== Intertec Superbrain QD ===&lt;br /&gt;
Please see the Downloads section for a link to the Superbrain QD installation ZIP file. The README.com has installation instructions and links to pictures showing the uIDE installed on a Superbrain.&lt;br /&gt;
&lt;br /&gt;
=== Transferring software to the PCW ===&lt;br /&gt;
I have assumed that you already have a way to get downloaded files onto your PCW. If not, the options are:&lt;br /&gt;
* Use a serial adapter such as the Amstrad CPS8256 and a copy of KERMIT to transfer over serial.&lt;br /&gt;
* Install a 3.5&amp;quot; floppy drive and transfer via floppies. You will need a program such as CPCDiskXP to put PCW disk image files onto the floppy. This program can also copy a downloaded file to a disk image.&lt;br /&gt;
* You can use '''cpmtools''' to access files on an image of your uIDE IDE device, and '''win32diskimager''' (under Windows) or '''dd''' (under linux) to copy the entire image to/from your Z80 machine's IDE device. Read the section below about the uIDE disk image.&lt;br /&gt;
&lt;br /&gt;
There may be other ways to achieve this (such as using a LocoLink cable) but it is out of scope of this WIKI page. If in doubt, ask on the forum.&lt;br /&gt;
&lt;br /&gt;
=== BASIC program to load the PCW driver from a DOM or CF card ===&lt;br /&gt;
If you choose to buy one of my DOMs, I will load it with the xdriver FID file and the uIDE image I describe below. You can also download and copy the uIDE hard disk image onto your own IDE device as this has the driver file preloaded (see below for instructions).&lt;br /&gt;
&lt;br /&gt;
To get the PCW xdriver from the image, enter the following program into BASIC and run it. It will retrieve the driver from the IDE device and write it to the currently logged-in disk. The driver file is written to the first three sectors on the IDE device, so that even if you format it, you can still use the BASIC program to restore the FID (because track 0 is reserved by the driver for future use).&lt;br /&gt;
&lt;br /&gt;
  10 REM uIDE bootstrap - load FID from uIDE track 0&lt;br /&gt;
  20 MEMORY &amp;amp;HCFF0&lt;br /&gt;
  30 :&lt;br /&gt;
  40 PRINT&lt;br /&gt;
  50 PRINT &amp;quot;uIDE-8 PCW driver retrieval program&amp;quot;&lt;br /&gt;
  60 PRINT &amp;quot;Copyright (c) Jon Bradbury 2019&amp;quot;&lt;br /&gt;
  70 PRINT&lt;br /&gt;
  80 REM for XDRV release v1.11 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD4FF: fidSec%=3&lt;br /&gt;
  85 REM for XDRV release v1.12 use fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  87 fidStart%=&amp;amp;HD000: fidEnd%=&amp;amp;HD544: fidSec%=3&lt;br /&gt;
  90 cfBase%=&amp;amp;HC8&lt;br /&gt;
  100 cfData%=cfBase%&lt;br /&gt;
  110 cfFeatures%=cfBase%+1&lt;br /&gt;
  120 cfError%=cfBase%+1&lt;br /&gt;
  130 cfSecCount%=cfBase%+2&lt;br /&gt;
  140 cfLBA0%=cfBase%+3&lt;br /&gt;
  150 cfLBA1%=cfBase%+4&lt;br /&gt;
  160 cfLBA2%=cfBase%+5&lt;br /&gt;
  170 cfHead%=cfBase%+6&lt;br /&gt;
  180 cfStatus%=cfBase%+7&lt;br /&gt;
  190 cfCommand%=cfBase%+7&lt;br /&gt;
  200 cf8Bit%=1&lt;br /&gt;
  210 cfReadSec%=&amp;amp;H20&lt;br /&gt;
  220 cfMaster%=&amp;amp;HE0&lt;br /&gt;
  230 cfSetFeat%=&amp;amp;HEF&lt;br /&gt;
  240 tout%=0: addr%=fidStart%&lt;br /&gt;
  250 GOSUB 850&lt;br /&gt;
  260 :&lt;br /&gt;
  270 GOSUB 580: REM cfWait&lt;br /&gt;
  280 IF tout%=1 THEN GOTO 560: REM check for timeout&lt;br /&gt;
  290 :&lt;br /&gt;
  300 REM init IDE device&lt;br /&gt;
  310 CALL di%&lt;br /&gt;
  320 OUT cfFeatures%,cf8Bit%&lt;br /&gt;
  330 OUT cfCommand%, cfSetFeat%&lt;br /&gt;
  340 CALL ei%&lt;br /&gt;
  350 GOSUB 580: REM cfWait&lt;br /&gt;
  360 :&lt;br /&gt;
  370 REM retrieve FID&lt;br /&gt;
  380 PRINT &amp;quot;Retrieving driver: [                        ]&amp;quot;;&lt;br /&gt;
  390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  400 FOR secNo% = 1 TO fidSec%&lt;br /&gt;
  410 GOSUB 680: REM get current sector&lt;br /&gt;
  420 NEXT secNo%&lt;br /&gt;
  430 PRINT&lt;br /&gt;
  440 PRINT &amp;quot;Writing xdrv.fid:  [                      ]&amp;quot;;&lt;br /&gt;
  450 FOR x=0 TO 22: PRINT CHR$(8);: NEXT x&lt;br /&gt;
  460 OPEN &amp;quot;R&amp;quot;,#1,&amp;quot;xdrv.fid&amp;quot;,1&lt;br /&gt;
  470 FIELD #1,1 AS d0$&lt;br /&gt;
  480 FOR addr%=fidStart% TO fidEnd%&lt;br /&gt;
  490 LSET d0$=CHR$(PEEK(addr%))&lt;br /&gt;
  500 PUT #1&lt;br /&gt;
  510 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  520 NEXT addr%&lt;br /&gt;
  530 CLOSE #1&lt;br /&gt;
  540 PRINT: PRINT: PRINT &amp;quot;Done.&amp;quot;&lt;br /&gt;
  550 PRINT &amp;quot;Copy xdrv.fid to your PCW CP/M boot disk and reboot.&amp;quot;&lt;br /&gt;
  560 END&lt;br /&gt;
  570 :&lt;br /&gt;
  580 REM cfWait&lt;br /&gt;
  590 FOR try%= 0 TO 31&lt;br /&gt;
  600 CALL di%&lt;br /&gt;
  610 status% = INP(cfStatus%)&lt;br /&gt;
  620 CALL ei%&lt;br /&gt;
  630 IF (status% &amp;lt;&amp;gt; &amp;amp;HFF) AND (status% AND &amp;amp;H80 &amp;lt;&amp;gt; 0) THEN RETURN&lt;br /&gt;
  640 NEXT try%&lt;br /&gt;
  650 PRINT &amp;quot;IDE device timeout - check it is connected.&amp;quot;&lt;br /&gt;
  660 tout%=1&lt;br /&gt;
  670 RETURN&lt;br /&gt;
  680 :&lt;br /&gt;
  690 REM get sector in secNo%, copy to buffer&lt;br /&gt;
  700 CALL di%&lt;br /&gt;
  710 OUT cfLBA0%,secNo%&lt;br /&gt;
  720 OUT cfLBA1%,0&lt;br /&gt;
  730 OUT cfLBA2%,0&lt;br /&gt;
  740 OUT cfHead%,cfMaster%&lt;br /&gt;
  750 OUT cfSecCount%,1&lt;br /&gt;
  760 OUT cfCommand%,cfReadSec%&lt;br /&gt;
  770 CALL ei%&lt;br /&gt;
  780 GOSUB 570&lt;br /&gt;
  790 FOR byte%=0 TO 511&lt;br /&gt;
  800 POKE addr%,INP(cfData%)&lt;br /&gt;
  810 addr%=addr%+1&lt;br /&gt;
  820 IF addr% MOD &amp;amp;H40 = 0 THEN PRINT CHR$(128);&lt;br /&gt;
  830 NEXT byte%&lt;br /&gt;
  840 RETURN&lt;br /&gt;
  850 :&lt;br /&gt;
  860 REM load up ei-di routines&lt;br /&gt;
  870 DATA &amp;amp;HF3,&amp;amp;HC9,&amp;amp;HFB,&amp;amp;HC9&lt;br /&gt;
  880 FOR x=&amp;amp;HCFF1 TO &amp;amp;HCFF4&lt;br /&gt;
  890 READ inst%&lt;br /&gt;
  900 POKE x,inst%&lt;br /&gt;
  910 NEXT x&lt;br /&gt;
  920 di%=&amp;amp;HCFF1&lt;br /&gt;
  930 ei%=&amp;amp;HCFF3&lt;br /&gt;
  940 RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To use the program.'''&lt;br /&gt;
* Turn the PCW off.&lt;br /&gt;
* Connect the uIDE to the PCW.&lt;br /&gt;
* Plug the DOM or CF card into the uIDE's IDE socket. If using your own, copy the PCW uIDE image onto it first.&lt;br /&gt;
* Power up the PCW. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check, then power-on again.&lt;br /&gt;
* Load Mallard BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).&lt;br /&gt;
* Save the BASIC program down before running it. SAVE &amp;quot;get-xdrv.bas&amp;quot;&lt;br /&gt;
* Return to CP/M by typing SYSTEM&lt;br /&gt;
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv&lt;br /&gt;
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.&lt;br /&gt;
* Now a second progress bar comes up as the FID is being written to the floppy drive.&lt;br /&gt;
* When the program ends, return to CP/M with the SYSTEM command.&lt;br /&gt;
* Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).&lt;br /&gt;
* You should see the sign-on message &amp;quot;PCW IDE Extended Driver Copyright (C) Jon Bradbury&amp;quot;&lt;br /&gt;
* You should also see a list of available drives.&lt;br /&gt;
* Try entering DIR C:. if it shows a list of files, your uIDE is working! Otherwise, there's something wrong and you will need to check your assembly. If I assembled it, contact me immediately.&lt;br /&gt;
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.&lt;br /&gt;
&lt;br /&gt;
== uIDE disk image and utils download ==&lt;br /&gt;
There is a zip file containing a disk image of CP/M software that you can download here: [[File:UIDE-PCW.zip|framed|All Board BOM]]&lt;br /&gt;
&lt;br /&gt;
It also has cpmtools and win32diskimager software.&lt;br /&gt;
&lt;br /&gt;
The Zip file contains the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File / folder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| BASIC-FILES || Directory containing a collection of BASIC programs and Microsoft interpreter / compiler&lt;br /&gt;
|-&lt;br /&gt;
| cpmtools || The CPM tools package, with additional disk defines for accessing a uIDE disk image.&lt;br /&gt;
|-&lt;br /&gt;
| Win32DiskImager-0.9.5 || The disk imaging program for Windows, works under Windows 10 x64 as well.&lt;br /&gt;
|-&lt;br /&gt;
| WS4-FILES || Directory containing a copy of Wordstar 4&lt;br /&gt;
|-&lt;br /&gt;
| Making CPM Images.pdf || A very well written guide to creating CP/M images on IDE devices, written by the guys at [http://www.s100computers.com www.s100computers.com].&lt;br /&gt;
|-&lt;br /&gt;
| uide.img || The PCW uIDE disk image (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see &amp;quot;Downloads&amp;quot; sectiopn above).&lt;br /&gt;
 &lt;br /&gt;
The PCW disk image is called uIDE.img and it is a copy of the N8VEM image, with the PCW uIDE driver loaded, as well as some PCW specific files (on drive C:, User 0) and additional games.&lt;br /&gt;
&lt;br /&gt;
=== Image contents ===&lt;br /&gt;
The image contains the following (where the number is the USER number - see below).&lt;br /&gt;
&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   C:              D:              E:                F:&lt;br /&gt;
  --------------------------------------------------------------------------&lt;br /&gt;
   0 PCW SPECIFIC  0 GAMES         0 OLD UTILS       0 NEWUTILS&lt;br /&gt;
   1 BDS_TINY_C    1 MUMATHSIMP    1 F80,M80,BASIC   1 FREE&lt;br /&gt;
   2 APL           2 CROSSTALK     2 AZTEC_C_106D    2 Z SYSTEM&lt;br /&gt;
   3 JANUS_ADA 1.5 3 QTERM43       3 TURBO PASCAL 3  3 MICROPRO&lt;br /&gt;
   4 MS_COBOL      4 CLINK         4 DX-FORTH 4.01   4 MULTIPLAN&lt;br /&gt;
   5 PILOT         5 SUPERSOFT UTL 5 PL/I 1.4        5 DBASE II&lt;br /&gt;
   6 SYSLIB        6 RCP/M         6 ALGOL/M         6 FREE&lt;br /&gt;
   7 BBC BASIC     7 DDTZ SOURCES  7 SUPERCALC       7 FREE&lt;br /&gt;
   8 NEMESIS       8 ADVENTURE-80  8 ASM GAMES       8 MICROSHEL&lt;br /&gt;
   9 GAMES         9 ZCHESS        9 MORE GAMES      9 INFOCOM ADVENTURES&lt;br /&gt;
                  10 ZORK         10 NEMESIS        10 BASIC GAMES 1&lt;br /&gt;
                                  11 YET MORE GAMES 11 BASIC GAMES 2&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Note: The original N8VEM downloads are here (including manuals for many of the included programs): http://obsolescence.wixsite.com/obsolescence/n8vemimage&lt;br /&gt;
&lt;br /&gt;
=== Some tips for using the CP/M programs on the disk image ===&lt;br /&gt;
* Download the manuals from the N8VEM website!&lt;br /&gt;
* Be aware that these programs and applications were written for CP/M 2.2 and some of them might not work on CP/M Plus.&lt;br /&gt;
* Many of the games are a bit poo. Remember, it's all text based, but if you fancy hunting a Wumpus or playing Trek, or even trying a classic Infocom adventure, you've come to the right place.&lt;br /&gt;
* In C0 there are versions of some programs that are specific for your machine. Always use these in preference to any version found elsewhere on the image. For example, ZSID.COM and KERMIT.COM on the PCW image are PCW specific.&lt;br /&gt;
* Where a program or application needs you to tell it what type of terminal you are using, choose &amp;quot;Zenith&amp;quot; or &amp;quot;Heath&amp;quot;. If that doesn't work, try &amp;quot;VT52&amp;quot;. These are closest to what the PCW emulates.&lt;br /&gt;
* WordStar and other Micropro applications are located in '''F3'''.&lt;br /&gt;
* Use an Internet search to find out about the programs you do not recognise.&lt;br /&gt;
* Most of the BASIC programs are written for Microsoft BASIC-80, which is located in E1. Remember to use SYSTEM in MBASIC to return to CP/M.&lt;br /&gt;
* You might find multiple copies of some of the programs on the image.&lt;br /&gt;
* Any user areas you don't want or need can be deleted.&lt;br /&gt;
* Drive G: and H: are empty.&lt;br /&gt;
&lt;br /&gt;
=== If your DIR just shows : characters (G: and H:) ===&lt;br /&gt;
There is a possibility of G: and H: not having properly setup directory entries on the image. When you do a DIR, you might see something like this:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;DIR&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  :        :        :        :&lt;br /&gt;
  G:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this happens, do the following:&lt;br /&gt;
&lt;br /&gt;
  G:&amp;gt;ERA *.*&lt;br /&gt;
&lt;br /&gt;
..and answer y to the &amp;quot;delete all&amp;quot; question. This will sort out the directory.&lt;br /&gt;
&lt;br /&gt;
=== Copying the disk image to an IDE device ===&lt;br /&gt;
I use a special cable setup to connect a DOM to my PC via USB for image transfers.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IDE imaging cable.JPG|1000px|centre|uIDE image transfer cable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''The various parts are labelled:'''&lt;br /&gt;
# IDE-USB adapter. Get this from any online auction site.&lt;br /&gt;
# Power connection (if your IDE-USB adapter doesn't supply power to IDE pin 20). Pin 20 is the red wire, +5v. Pin 19 is GND. I use a 2 pin PCB header to connect to the female IDC connector.&lt;br /&gt;
# IDE device, in this case a 128Mb DOM&lt;br /&gt;
# 5v power supply. This is only used to power the IDE device, and if you are using a CF card adapter, you may find it has a power socket you can use instead.&lt;br /&gt;
# Cable. This is a simple 40 way IDC ribbon cable with two cable mounted male IDC box headers and two cable mounted female IDC plugs (you only need one, for connecting power to the IDE device). The parts to make this up are freely available, and the cable can be used to connect a slave drive to uIDE.&lt;br /&gt;
&lt;br /&gt;
'''There are other ways to connect your IDE device to a PC:'''&lt;br /&gt;
* If your PC has a spare IDE connector, you can plug the DOM or CF card adapter device directly into it.&lt;br /&gt;
* If you are using a CF card, you can connect it to your PC with a standard USB-CF card adapter.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE image under Linux ====&lt;br /&gt;
&lt;br /&gt;
Use the Linux '''dd''' command to do this, but take care that the of= parameter is pointing to your IDE card. Use GParted to verify this.&lt;br /&gt;
&lt;br /&gt;
The command is:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uide-image-file of=the-device-of-your-IDE-card&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  sudo dd if=uIDE_download.img of=/dev/sdc&lt;br /&gt;
&lt;br /&gt;
If in doubt, read the dd manual by entering the command&lt;br /&gt;
&lt;br /&gt;
  man dd&lt;br /&gt;
&lt;br /&gt;
..and be aware that dd is also known as the &amp;quot;disk destroyer&amp;quot; because if you get the ''-of'' wrong your hard disk may be wiped. I use GParted (under Ubuntu Linux) to ensure I have the correct device by loading it up and looking in the dropdown for the list of disks. One of them will be 125MB and that is the DOM. You'll see it is named as &amp;quot;/dev/[something]&amp;quot; - that's what your dd ''-of'' argument should be.&lt;br /&gt;
&lt;br /&gt;
==== To transfer the uIDE disk image under Windows ====&lt;br /&gt;
Later Windows versions are not very good at giving low level access to hard drives like Linux is. Transferring images is, therefore, a bit more convoluted (and so far I have not found a way of reading images back, because Windows will not recognise the hardware unless the drive on it is formatted for DOS or Windows).&lt;br /&gt;
&lt;br /&gt;
This procedure should get you started, though.&lt;br /&gt;
&lt;br /&gt;
* Connect the transfer rig to your PC&lt;br /&gt;
* Insert the IDE device and power it up.&lt;br /&gt;
* If Windows Explorer does not show the drive it is unformatted or uninitialised. Initialise it first via &amp;quot;Computer Management&amp;quot; (On the Start menu, under All Programs -&amp;gt; Windows Administrative Tools, or Run -&amp;gt; compmgmt.msc). Click the Storage / Disk Management item in the left hand side of the screen and you should see the IDE device in the main pane. Right-click on the button labelled &amp;quot;Disk n Unknown&amp;quot; (n depends on how many drives you have) and select &amp;quot;Initialise Disk&amp;quot;. Select MBR and click OK. Now click on the &amp;quot;Unallocated&amp;quot; block for the disk and select &amp;quot;New Simple Volume&amp;quot;, then (in the New Simple Volume Wizard, click Next, Next, Next, Next, Finish). If you get a popup saying the disk needs to be formatted, cancel it, because the Disk manager is already doing it. Now, go back to Windows Explorer and you should see a disk called &amp;quot;New Volume&amp;quot;. Note the drive letter.&lt;br /&gt;
* Launch '''Win32DiskImager'''. Select the drive letter of your CF card or DOM on the right of the window and choose the uIDE disk image file on the left, then click the &amp;quot;Write&amp;quot; button. Check that the confirmation dialog box shows the correct drive letter, then click &amp;quot;OK&amp;quot;. You should now see a progress bar as the image is written to the IDE device. When complete, a small widow will pop up saying &amp;quot;Write successful.&amp;quot; Click the OK button and close win32imager.&lt;br /&gt;
* You should now have a prepared uIDE DOM or CF card. Disconnect the imaging cable and power down the IDE device. Plug it into the uIDE adapter.&lt;br /&gt;
* In case of problems, try using a powered USB hub to connect the USB-IDE adapter to your computer. Some of the cheaper ones (like mine) seem to try and draw  more power from the USB port than is allowed, and can be unreliable as a result.&lt;br /&gt;
&lt;br /&gt;
==== To retrieve the uIDE driver from the IDE device ====&lt;br /&gt;
Before you can use uIDE under CP/M, you must retrieve the driver file that is stored on the uide image.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions above (the BASIC program) to retrieve the xdriver FID file from the IDE device. After rebooting your computer, you should able to explore the disk image.&lt;br /&gt;
&lt;br /&gt;
==== To access files on the uIDE image ====&lt;br /&gt;
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmls -f uIDE0 -d uide.img&lt;br /&gt;
&lt;br /&gt;
Lists all files on drive 0 (first CP/M partition on the image). To see the other partitions, substitute uIDE0 with uIDE1, uIDE2, uIDE3 and so on. A uIDE disk image has 16 partitions (although remember, under Amstrad CP/M, only the first six are accessible).&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt&lt;br /&gt;
&lt;br /&gt;
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.&lt;br /&gt;
&lt;br /&gt;
  C:/Users/JonB/uIDE/cpmtools&amp;gt;cpmcp -f uIDE2 uide.img more.com 3:more.com&lt;br /&gt;
&lt;br /&gt;
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.&lt;br /&gt;
&lt;br /&gt;
If you are transferring files to an image, remember you have to then put the image back onto the IDE device before you can access it on your Z80 computer.&lt;br /&gt;
&lt;br /&gt;
Refer to http://www.cpm8680.com/cpmtools/ for more information.&lt;br /&gt;
&lt;br /&gt;
==== Short disclaimer ====&lt;br /&gt;
&lt;br /&gt;
''The uIDE disk image is supplied &amp;quot;as-is&amp;quot; and the copyrights of the respective authors are acknowledged. Please do not PM me if you encounter problems with any of the applications - ask on the CPCWiki PCW forum (or better still, the VCF CP/M forum). There is no guarantee that all applications will work on your machine; they are CP/M 2.2 programs provided with the intention of helping to get you started with your uIDE device.''&lt;br /&gt;
&lt;br /&gt;
== CP/M Plus version requirements ==&lt;br /&gt;
To use the PCW uIDE xdriver, you must have a version of CP/M Plus that supports FID (&amp;quot;field installable driver&amp;quot;) files.&lt;br /&gt;
* On the PCW8256 and 8512 the lowest FID supporting version is 1.14. That's &amp;quot;one dot fourteen&amp;quot; so if (like me) you have v1.4, yours is too old.&lt;br /&gt;
* On the PCW9512 you should be OK. I have v2.15.&lt;br /&gt;
&lt;br /&gt;
Refer to [http://www.seasip.info/Cpm/amsfid.html http://www.seasip.info/cpm/amsfid.html] for more details.&lt;br /&gt;
&lt;br /&gt;
If you find your CP/M Plus version is too old, it should be sufficient to replace the EMS file on your boot disk with a later one. The file containing CP/M is named like &amp;quot;JnnCPM3.EMS&amp;quot; or &amp;quot;JnnCPM3.EMT&amp;quot;. The nn indicates the version number so for example &amp;quot;J14CPM3.EMS&amp;quot; is version 1.4. If your boot disk's CPM file has a &amp;quot;.EMS&amp;quot; extension and you want to use a file with &amp;quot;.EMT&amp;quot;, just rename it (and vice versa).&lt;br /&gt;
&lt;br /&gt;
=== PCW8000 series CP/M versions ===&lt;br /&gt;
You can download a ZIP file with the later PCW EMS/EMT files here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/?action=dlattach;attach=21886&lt;br /&gt;
&lt;br /&gt;
(From this thread http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/cpm-plus-1-11-1-5-download/ )&lt;br /&gt;
&lt;br /&gt;
For the 8256 / 8512 machines, I recommend the v1.15 EMT file.&lt;br /&gt;
&lt;br /&gt;
== Future extensions ==&lt;br /&gt;
There are no plans as yet to produce any of these extensions because I'm busy building uIDE devices and I need some commitment from buyers before sinking the huge amounts of time and money required to do them. So, if you are interested, please let me know.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Bus board / backplane ===&lt;br /&gt;
Building on the ''Z80 bus'' concept employed by uIDE, I have completed the design of a 5 slot bus board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It needs a quick rethink though, because I would like to add some additional lines for special host pins such as are found on the PcW.&lt;br /&gt;
&lt;br /&gt;
=== PCW Serial / parallel port ===&lt;br /&gt;
The easiest way to routinely transfer files between a CP/M machine and a PC is via a serial connection and transfer software such as Kermit. The problem is that on the PCW and 6128 you need a plug-in adapter (and these are a bit hard to come by).&lt;br /&gt;
&lt;br /&gt;
The PCW adapter is called a '''CPS8256''' and it has both serial and parallel ports. It is not compatible with the PCW 9512.&lt;br /&gt;
&lt;br /&gt;
This is a design for a parallel / serial adapter to plug into the Z80 bus board that is a clone of the CPS8256.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== uRTC-8 Real Time Clock ===&lt;br /&gt;
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.&lt;br /&gt;
&lt;br /&gt;
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== PCW uIDE boot card ===&lt;br /&gt;
This board would enable the PCW to boot directly from the uIDE board. A bit complicated but I intend to have a go at it... It's special in that it requires access to the &amp;quot;unused&amp;quot; pins of the PcW expansion port adapter - these are /REFSH, /NMI, /HALT, /MDIS, 3.2Mhz respectively (the boot card really needs /MDIS as far as I know). Others have implemented hard drive booting on the PCW, and I need to find out how - then I can build this card.&lt;br /&gt;
&lt;br /&gt;
=== Other expansions ===&lt;br /&gt;
I have been thinking of other expansions. Some possibilities include:&lt;br /&gt;
* Parallel GPIO card&lt;br /&gt;
* Dk'tronics sound clone&lt;br /&gt;
* AMX mouse clone&lt;br /&gt;
&lt;br /&gt;
== Connecting a CF card to uIDE instead of a DOM ==&lt;br /&gt;
[[File:Cf adapter power mod.jpg|200px||left|]]&lt;br /&gt;
Not recommended due to compatibility problems with some types of CF card, but if you really must, you need a cheapo IDE to CF card adapter and you should either connect its 5v input to the uIDE CF_PWR header (being VERY careful about the polarity) or modify the adapter so that IDE Pin 20 is connected to the 5v power socket, as shown on the left. The thin copper wire that goes from the IDE plug to the small component next to the power socket is the mod. You should check with a meter that these are correct for your adapter. Some adapters already have this connection, so try yours before modding it. You should see its power light come on if it is properly connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CF Card compatibility list ==&lt;br /&gt;
My intention is to maintain a list here of which CF cards work with uIDE, and which do not. So:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Card make / type !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 64MB CF card || works&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec 512MB CF card (C1 512 D-SA) || works (this card identifies as a Samsung)&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF 16GB 266X || not compatible, will not identify&lt;br /&gt;
|-&lt;br /&gt;
| STEC 128MB CF SLCF128MM1U || not compatible, will not identify&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About CP/M USER areas. ==&lt;br /&gt;
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.&lt;br /&gt;
&lt;br /&gt;
A CP/M &amp;quot;user area&amp;quot; is a bit like a directory under MS-DOS, except it is named by a number and there are only 16 of them on each drive.&lt;br /&gt;
&lt;br /&gt;
To use the different user areas, use the command USER n where n is the user&lt;br /&gt;
area you want to switch to (0 to 15). It is tricky copying files between&lt;br /&gt;
user areas. First you need to get PIP.COM to the user area you want to copy&lt;br /&gt;
to.&lt;br /&gt;
&lt;br /&gt;
'''The DRI PIP manual says:'''&lt;br /&gt;
&lt;br /&gt;
  To copy files into another user area, PIP.COM must be located in that user&lt;br /&gt;
  area. Use the following procedure to make a copy of PIP.COM in another&lt;br /&gt;
  user area (in this example, USER 3). &lt;br /&gt;
  &lt;br /&gt;
  USER 0			Log in user 0.&lt;br /&gt;
  DDT PIP.COM		(note PIP size s) Load PIP to memory.&lt;br /&gt;
  G0			Return to CCP.&lt;br /&gt;
  USER 3			Log in user 3.&lt;br /&gt;
  SAVE s PIP.COM	&lt;br /&gt;
  	&lt;br /&gt;
  In this procedure, s is the integral number of memory pages, 256- byte&lt;br /&gt;
  segments, occupied by PIP. The number s can be determined when PIP.COM&lt;br /&gt;
  is loaded under DDT, by referring to the value under the NEXT display.&lt;br /&gt;
  &lt;br /&gt;
  If, for example, the next available address is 1D00, then PIP.COM requires&lt;br /&gt;
  1C hexadecimal pages, or 1 times 16 + 12 = 28 pages, and the value of s is&lt;br /&gt;
  28 in the subsequent save.&lt;br /&gt;
  &lt;br /&gt;
  Once PIP is copied in this manner, it can be&lt;br /&gt;
  copied to another disk belonging to the same user number through normal&lt;br /&gt;
  PIP transfers.&lt;br /&gt;
&lt;br /&gt;
You can now change user or drive as many times as you like, and drop a copy&lt;br /&gt;
of PIP.COM using the same save command, as long as you do not run any&lt;br /&gt;
transient commands in the meanwhile (this means, &amp;quot;execute a .COM file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Copying files between user areas. ===&lt;br /&gt;
To copy files to a particular user area, first switch to it with 'USER n'&lt;br /&gt;
command. Then, use the PIP you SAVEd to the user area to copy files in:&lt;br /&gt;
&lt;br /&gt;
  PIP dr:&amp;lt;filespec&amp;gt;[Gn]&lt;br /&gt;
where&lt;br /&gt;
* dr: is the source drive ID (A: - P: ), and&lt;br /&gt;
* n is the source USER area.&lt;br /&gt;
&lt;br /&gt;
Example: To copy KERMIT.COM from Drive A USER 5 to Drive N User 15 (assumes&lt;br /&gt;
PIP.COM is already present in the target drive / user area):&lt;br /&gt;
  A:&amp;gt;N:&lt;br /&gt;
  N:&amp;gt;user 15&lt;br /&gt;
  N:&amp;gt;pip n:=a:kermit.com[g5]&lt;br /&gt;
&lt;br /&gt;
== More fun with CP/M Plus ==&lt;br /&gt;
Some of this stuff you probably know.. but anyway, in case you don't...&lt;br /&gt;
&lt;br /&gt;
=== Faster loading of CP/M COM files on the PCW ===&lt;br /&gt;
One of the first things you should do after setting your uIDE up is to copy all the CP/M program files to one of the IDE drives so that they load quicker.&lt;br /&gt;
&lt;br /&gt;
To do this (and assuming you want to put these all on the C: drive):-&lt;br /&gt;
* Insert CP/M boot disk into the floppy drive A:&lt;br /&gt;
* Issue the command PIP C:=A:*.*[v]&lt;br /&gt;
* The [v] option will verify each file after it is copied. Since this is likely to be the first thing you do with the uIDE, it's a good idea to use [v] just to double check it's working OK.&lt;br /&gt;
* Now create a file called PROFILE.SUB on the boot disk in A:&lt;br /&gt;
* Add the line C:SETDEF M:,C:,* [ORDER = (SUB,COM)] and save the file&lt;br /&gt;
* What this does is make the CCP (command line processor) look for SUB and COM files on the IDE drive C: before the currently logged disk. So if you are on A: and you issue the command BASIC (to load BASIC), it will be loaded from the IDE drive rapidly, even if there is a copy on A:. In fact, it looks on M: first, and a submit file like BASIC.SUB takes precedence over the real executable BASIC.COM.&lt;br /&gt;
&lt;br /&gt;
=== Public USER 0 (SYSTEM files) on the PCW ===&lt;br /&gt;
Another useful trick is to make the CP/M COM files in user area 0 into SYSTEM files. This means that they won't be visible when you do a DIR, and they will be executable from all user areas on the same disk. So:-&lt;br /&gt;
&lt;br /&gt;
* Go to the drive where you copied all the COM files to. In this example, it is C:&lt;br /&gt;
* Switch to USER 0 (type &amp;quot;USER 0&amp;quot; at the CP/M prompt).&lt;br /&gt;
* Enter the command SET *.* [SYS]&lt;br /&gt;
* Now, when you switch to another user on the same drive, you can access the CP/M command set without copying them to the user area first.&lt;br /&gt;
* If you do this, there's no need to copy PIP to all the user areas (this was required for CP/M 2.2).&lt;br /&gt;
* If you want to turn them back into normal files, enter the command SET *.*[DIR]&lt;br /&gt;
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)&lt;br /&gt;
&lt;br /&gt;
=== Fast switch between any drive / user combination on the PCW ===&lt;br /&gt;
One last info nugget, which you should find useful when looking through the download image. You can go to any drive / user combination  by typing DN: where D is the drive letter and N is the user number. CP/M alters the  CCP prompt to tell you where you are. For example:&lt;br /&gt;
&lt;br /&gt;
  A&amp;gt;C10:&lt;br /&gt;
  10C&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curiously, it puts the user number first. If you just enter the drive letter, it switches to the drive you specify, but leaves the user number unchanged:&lt;br /&gt;
&lt;br /&gt;
  10C&amp;gt;D:&lt;br /&gt;
  10D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are in USER 0, it does not show a user number in the CCP prompt.&lt;br /&gt;
&lt;br /&gt;
== Prices ==&lt;br /&gt;
This is a summary of the prices I have posted to the forum so far.&lt;br /&gt;
I am sorry that the assembled prices are what they are, but it is a time consuming and dreary job, not to mention the effort and cost to acquire the parts. I encourage self build!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Price&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-8 bare board || £8.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-8 assembled || £42.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-16 bare board || £9.50&lt;br /&gt;
|-&lt;br /&gt;
| uIDE-16 assembled || £52.50&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim bare board (LHS or RHS) || £2.50&lt;br /&gt;
|-&lt;br /&gt;
| Z80 Shim assembled (LHS or RHS) || £17.50&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output || £4.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter with composite video output (assembled) || £29.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output) || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| PCW expansion port adapter &amp;quot;lite&amp;quot; (without composite video output, assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| CPC 6128 expansion port adapter || £3.00&lt;br /&gt;
|-&lt;br /&gt;
| CPC 6128 expansion port adapter (assembled) || £18.00&lt;br /&gt;
|-&lt;br /&gt;
| Superbrain i2716 ROM adapter board || £2.50&lt;br /&gt;
|-&lt;br /&gt;
| Superbrain i2716 ROM adapter board (assembled) || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| 128MB DOM suitable for use with uIDE-8 and uIDE-16 || £7.95&lt;br /&gt;
|-&lt;br /&gt;
| Z80 bus cable (40 way IDC-IDC ribbon) || n/a, buy from an auction site: &amp;quot;40 way IDC cable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing boards only || £3.50&lt;br /&gt;
|-&lt;br /&gt;
| UK postage &amp;amp; packing assembled packages || £5.50&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing boards only || £8.00&lt;br /&gt;
|-&lt;br /&gt;
| European countries postage &amp;amp; packing assembled packages || £12.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing boards only || £14.00&lt;br /&gt;
|-&lt;br /&gt;
| Rest of the world postage &amp;amp; packing assembled packages || £18.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift).&lt;br /&gt;
&lt;br /&gt;
The shipping prices are a reasonable estimate and should allow a tracked service. Please contact me if you would like shipping insurance. All shipping will be via UK Royal Mail services.&lt;br /&gt;
&lt;br /&gt;
Please note, you will also need a Z80 bus cable. This is a standard 40 way IDC female to female ribbon commonly found in PCs to connect the motherboard to an IDE HDD.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/ uIDE 16 discussion thread]&lt;br /&gt;
&lt;br /&gt;
[http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/ PCW uIDE discussion thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]&lt;br /&gt;
&lt;br /&gt;
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&lt;br /&gt;
'''All designs presented here are copyrighted works.'''&lt;br /&gt;
&lt;br /&gt;
'''Copyright (C) Jon Bradbury 2017.'''&lt;br /&gt;
&lt;br /&gt;
* VCF Forum http://www.vcfed.org/forum/forum.php member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* CPCWiki Forum http://www.cpcwiki.eu/forum/forum/ member &amp;quot;JonB&amp;quot;&lt;br /&gt;
* Amstrad.ES Forum member &amp;quot;JonB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
As I am a hobbyist, not a big business, I need to make a few things clear.&lt;br /&gt;
&lt;br /&gt;
You are free use these designs for personal or commercial purposes, on the following conditions:&lt;br /&gt;
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.&lt;br /&gt;
* You acknowledge my right to assert copyright and ownership of these designs.&lt;br /&gt;
* You agree to indemnify me and the CPCWiki web site against damage to your computer or other connected hardware or data contained on any attached media.&lt;br /&gt;
* All work is undertaken at your own risk. I am not liable for any hardware damage or data loss, loss of your homework, your dog getting sick, etc.&lt;br /&gt;
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.&lt;br /&gt;
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
I will support your use of these designs via the appropriate forum by offering help and advice as necessary. Please review the content of this Wiki page before asking for help, though, and contact me via the channels described below.&lt;br /&gt;
&lt;br /&gt;
== How to contact me. ==&lt;br /&gt;
I am member &amp;quot;JonB&amp;quot; of the VCF and CPC Wiki Forums. If you need support or have any comments,&lt;br /&gt;
please start a new thread on the VCF CP/M forum here:&lt;br /&gt;
&lt;br /&gt;
http://www.vcfed.org/forum/showthread.php?56162&lt;br /&gt;
&lt;br /&gt;
Or on the relevant CPCWiki / Amstrad.ES forum linked to above. You could also PM me.. :)&lt;br /&gt;
&lt;br /&gt;
Note: Forum registration is required.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
I would like to thank some collaborators for their work and kind assistance.&lt;br /&gt;
&lt;br /&gt;
* Grant Searle, who wrote the original formatting program and read / write driver code as well as the DPB for his nine chip CP/M computer. XDRIVER is a derivative of this work. http://searle.hostei.com/grant/index.html&lt;br /&gt;
* John Elliot, who helped me to understand how the FID file format works, and provided his FID CHECKSUM program which is a required part of the FID development toolchain. http://www.seasip.info&lt;br /&gt;
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.&lt;br /&gt;
* The open source community team responsible for KiCad, which, in its later incarnations, is worth every penny you do not have to spend on it. http://kicad-pcb.org/&lt;br /&gt;
&lt;br /&gt;
== Salutation ==&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
CPCWiki Forum Member &amp;quot;JonB&amp;quot; (Jon Bradbury) 19/02/2017&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]] &lt;br /&gt;
[[Category:Peripherals]]&lt;br /&gt;
[[Category:DATA Storage]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>JonB</name></author>	</entry>

	</feed>