Changes

/* Using the formatter XFORMAT.COM */
All boards are in production.
'''Update 01/02/17:'''As of now uIDE-16 is in the design phase, but the boards have been laid out. Click the images around the page for a closer look.uIDE-8 was prototyped and tested successfully on the PCW 9512. A FID based driver has been written that supports Amstrad CP/M and Locoscript (but it cannot cold boot the machine). '''Update 05/02/17:'''The first batch of 10 uIDE-8 boards has been ordered but I found that there was an error in the order that will make them unusable, so I added the following to my original order:* 10 uIDE-8s (corrected)* 10 Z80 LHS Shims* 10 Z80 RHS Shims* 10 PCW Expansion port adapter with composite video* 10 PCW Expansion port adapter "lite" '''Update 13/02/17:''' All boards have been re-ordered with expedited shipping, including uIDE-16. Some layouts were altered slightly. I still need to build one uIDE-16 and CPC CP/M Plus Superbrain QD drivers for testing. The order comprises of:* 10 uIDE-16* 10 6128 expansion port to Z80 bus adapters* 10 Z80 LHS Shims* 10 Z80 RHS Shims* 10 PCW Expansion port adapter with composite video* 20 uIDE-8* 20 PCW Expansion port adapter "lite" '''Update 18/02/17:''' The first three uIDE prototype boards have arrived from OSH Park. They are very, very pretty. I built two of them and they both work. See the forum thread linked to below for details and pictures.Note: The boards I will provide will be red or blue (but mostly blue). '''Update 26/02/17:'''I wrote a small BASIC program that allows you to retrieve the driver file from one of my DOMs. You can use this to get the driver onto your PCW if you have no other way to transfer files from a PC. See further down the page, and prepare to do a bit of typing! '''Update 01/03/17 (1):''' There is a problem with the uIDE-8 boards which will require replacing Q1, R5 and R6 with a small single inverter IC. An additional two jump wires will be required to connect the other 2 legs of the IC. Pictures to follow. '''Update 01/03/17: (2)''' There is a problem with the uIDE-16 boards which prevents the 8-bit addressing mode from working. The workaround is to cut two tracks on the underside of the board and fit two jumper wires. You only need to do this if you want to use the 8-bit addressing mode - if you are going to fit uIDE-16 to a CPC machine, there's no need to alter the board. Pictures of this alteration are on [http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/msg142102/#msg142102 the CPC6128 uIDE-16 thread]. '''Update 01/03/17: (3)''' Both LHS and RHS shims passed testing. No issues. '''Update 02/03/17''' [http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-ide-adapter-anyone/msg142140/#msg142140 First successful test of uIDE-16 and 6128 expansion port adapter.] '''Update 04/03/17''' I have added a section below that lists the limitations of the device and its driver. '''Update 10/03/17''' I have added a section below that discusses the downloadable uIDE image and how to access files on it. You can use these instructions with uIDE to transfer files to/from your Z80 computer. '''Update 14/03/17''' Many Wiki page updates. New assembly advice section. BOM update. First boards dispatched to owners. '''Update 27/03/17''' More Wiki page updates, in particular the pictures of the fitted uIDE devices because they were taken with a prototype board that had different cable orientation than the production board (which has caused some confusion). Also, uploaded a new version of the "provisional" driver suite ZIP file. '''Update 08/09/17''' Added link to v1.11 PCW driver threadnow available.
== Feature list ==
* Does not require a separate 5v power supply (the computer supplies power).
* 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).
* Driver supports Amstrad PCW CP/M Plus version 1.14 and higher, and Locoscript only at this time (it is implemented as a FID).
* 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.
* Intertec Superbrain QD now fully supported.
* 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).
* 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.
* uIDE may not be compatible with certain types of IDE device (CF cards, DOMs).
* There is no driver support for IDE CD drives.
* There is no I have not provided driver support for uIDE-16 on the CPC 6128 yet. I'm working on itHowever, please see the [https://www.cpcwiki.eu/forum/applications/hdcpm-boot-and-run-cpm-plus-from-hard-disk/ HDCPM thread]
* 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).
* IDE devices must also support LBA (logical block addressing) mode (for my drivers).
| [[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]]
|-
| [[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]]
|-
| 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]]
|-
| 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.
|-
| 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]]
|-
| [[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]]
|-
| https://drive.google.com/file/d/1HaWvlNjYw6uwRpdOBd-Tokw0SgrVJanO/view?usp=share_link || Intertec Superbrain I and II QD uIDE driver v0.12 package ||
|}
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.
 
=== Schneider PCW variants ===
You can connect uIDE-8 to a Schneider PCW expansion plug using a 50 way Centronics to 50 way IDC cable.
{| class="wikitable"
|-
|[[File:Schneider adapter cable.jpg|200px|thumb|left|Schneider adapter cable]]
|}
 
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.
 
{| class="wikitable"
|-
|[[File:Schneider adapter cable fitted.jpg|200px|thumb|left|Schneider adapter cable fitted, with uIDE and DOM, in an enclosure]]
|}
 
=== CPC 6128 ===
|[[File:CPC 6128 bus adapter.png|200px|thumb|left|CPC 6128 Bus adapter]]
|}
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.
== BOMs ==
* The IDE device can plug directly into the uIDE board. Angled IDC connectors are recommended when building the board.
* 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.
* uIDE-8 cannot be used on the 6128CPC6128 as it uses 16 bit I/O addressing. Choose uIDE-16. === Special notes for uRTC-8 users ===* You can connect uRTC-8 to your computer by choosing any two options from the first two columns.* uRTC-8 cannot be used on the CPC6128 as it uses 16 bit I/O addressing.
== Information for self builders ==
|[[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.)]]
|}
 
'''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.'''
=== PCW 9000 series machines ===
|[[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.)]]
|}
 
=== Schneider PCW machines ===
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).
 
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
 
I can supply the Schneider specific Expansion port adapter, but not the Centronics to IDC cable.
=== CPC6128 machines ===
|-
|[[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.]]
|}
 
=== CPC6128 machines with MX4 backplane===
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.
 
{| class="wikitable"
|-
|[[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.]]
|[[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.]]
|}
a system disk reset (BDOS call 0Dh) to ensure that all disk allocation
buffers are cleared down. On CP/M 3, use the XRST.COM command to achieve the same thing.
 
For uIDE-16 users with HDCPM, do not use XFORMAT - follow HDCPM documentation for disk preparation.
== About XRST.COM ==
== Drivers ==
=== Amstrad PCW ===
There is a driver for the PCW which is a FID ("Field Installable Driver") 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).
'''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.'''
=== Amstrad CPC6128 ==='''Note: There are no drivers available for uiDE on the CPC6128 at this timeis supported by [[HDCPM]].''' (But I am working on itKudos to d_kef!) === Intertec Superbrain QD ===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.
=== Transferring software to the PCW ===
40 PRINT
50 PRINT "uIDE-8 PCW driver retrieval program"
60 PRINT "Copyright (c) Jon Bradbury 20172019"
70 PRINT
80 REM for XDRV release v1.11 use fidStart%=&HD000: fidEnd%=&HD4FF: fidSec%=3 85 REM for XDRV release v1.12 use fidStart%=&HD000: fidEnd%=&HD544: fidSec%=3 87 fidStart%=&HD000: fidEnd%=&HD544: fidSec%=3
90 cfBase%=&HC8
100 cfData%=cfBase%
360 :
370 REM retrieve FID
380 PRINT "Retrieving driver: [ ]";: REM 24 spaces
390 FOR x=0 TO 24: PRINT CHR$(8);: NEXT x
400 FOR secNo% = 1 TO fidSec%
420 NEXT secNo%
430 PRINT
440 PRINT "Writing xdrv.fid: [ ]";: REM 20 spaces 450 FOR x=0 TO 2022: PRINT CHR$(8);: NEXT x
460 OPEN "R",#1,"xdrv.fid",1
470 FIELD #1,1 AS d0$
930 ei%=&HCFF3
940 RETURN
 
'''To use the program.'''
* 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).
* Save the BASIC program down before running it. SAVE "get-xdrv.bas"
* Return to CP/M. by typing SYSTEM
* Copy get-xdrv.bas onto your boot disk and run it from there. From CP/M: BASIC get-xdrv
* You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.
* You should see the sign-on message "PCW IDE Extended Driver Copyright (C) Jon Bradbury"
* You should also see a list of available drives.
* Try a 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.
* It is wise to make a backup of the xdrv.fid file and the BASIC retrieval program onto a separate floppy disk.
| 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].
|-
| uide.img || The PCW uIDE disk image (see below).
|}
The Intertec Superbrain uIDE disk image is called sbuIDE v0.11.img and is distributed as part of the Superbrain download package (see "Downloads" sectiopn above). 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.
=== Image contents ===
man dd
..and be aware that dd is also known as the "disk destroyer" because if you get it 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 "/dev/[something]" - that's what your dd ''-of'' argument should be.
==== To transfer the uIDE disk image under Windows ====
Use the '''cpmtools''' executables that are in the downloaded zip file. Copy the uide.img file to the cpmtools directory and try the following:
C:/Users/JonB/uIDE/cpmtools>cpmls -f uIDE0 -duide.img
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).
C:/Users/JonB/uIDE/cpmtools>cpmcp -f uIDE0 uide.img 0:pcwexpan.txt pcwexpan.txt
Copies the file pcwexpan.txt on drive zero, user zero in the uide.img file to the current directory.
C:/Users/JonB/uIDE/cpmtools>cpmcp -f uIDE2 uide.img more.com 3:more.com
Copies the CP/M program MORE.COM from the current directory to drive 2, user 3 of the uide.img image file.
|[[File:Z80 bus board layout.PNG|thumb|Z80 bus board layout]] || |[[File:Z80 bus board 3D.PNG|thumb|Z80 bus board 3D view]]
|}
 
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.
=== PCW Serial / parallel port ===
|[[File:CPS8256 clone.png|thumb|CPS8256 clone PCB layout]] || [[File:CPS8256 3D.PNG|thumb|CPS8256 clone 3D view]]
|}
 
=== uRTC-8 Real Time Clock ===
This board is an external RTC that enables the host computer to maintain the time and date even when switched off.
 
Please see [[URTC-8 Universal RTC for Z80 computers]] for more details.
 
=== PCW uIDE boot card ===
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 "unused" 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.
=== Other expansions ===
|}
== About CP/M USER areas. ==
This section was written for xdriver v1.9 under CP/M 2.2 and may or may not apply to CP/M Plus.
Some of this stuff you probably know.. but anyway, in case you don't...
=== Faster loading of CP/M COM files on the PCW ===
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.
* 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.
=== Public USER 0 (SYSTEM files) on the PCW ===
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:-
* If you want to list them, enter the command DIR[SYS] (note, needs the program DIR.COM installed)
=== Fast switch between any drive / user combination on the PCW ===
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:
== Prices ==
This is a summary of the prices I have posted to the forum so far.hgave been advised that I am sorry that the assembled not allowed to display prices are what they areon a Wiki page, but it is a time consuming and dreary job, not I am allowed to mention the effort and cost link to acquire the partsthem. I encourage self build!
{| class="wikitable"|-! Item !! Price|-| uIDE-8 bare board || £7.50|-| uIDE-8 assembled || £42.50|-| uIDE-16 bare board || £9.00|-| uIDE-16 assembled || £52.50|-| Z80 Shim bare board (LHS or RHS) || £2.50|-| Z80 Shim assembled (LHS or RHS) || £17.50|-| PCW expansion port adapter with composite video output || £4.00|-| PCW expansion port adapter with composite video output (assembled) || £29.00|-| PCW expansion port adapter "lite" (without composite video output) || £3.00|-| PCW expansion port adapter "lite" (without composite video outputConsequently, assembled) || £18you can find prices for these boards on the CPCWiki forum [https://www.00|-| CPC 6128 expansion port adapter || £3cpcwiki.00|eu/forum/nc100-| CPC 6128 expansion port adapter (assembled) || £18.00|-| 128MB DOM suitable for use with uIDE-8 and uIDE-16 || £4.00|nc200-| Z80 bus cable (40 way IDCpcw-IDC ribbon) || npda600/a|who-| UK postage & packing boards only || £2.50|wants-| UK postage & packing assembled packages || £4.50|ide-| European countries postage & packing boards only || £7.00|drives-| European countries postage & packing assembled packages || £10.00|on-| Rest of the world postage & packing boards only || £10.00|-| European countries postage & packing assembled packages || £15.00|-|} Payment via PayPal, please, in Sterling (GBP). All prices are plus shipping as shown and PayPal fees (send as a gift). 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. 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 my offering. But if you decide to order one, please contact me to discuss the length of the cable. I guess it depends on the machine and where you want to position the uIDE cardpcw/msg235808/#msg235808 here].
== More information ==
[https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg PCW uIDE prototype demonstration videos]
 
[http://www.vcfed.org/forum/showthread.php?57196-uIDE-on-the-Superbrain Superbrain uIDE discussion thread on VCF Forum]
 
[https://www.youtube.com/playlist?list=PL2L62b7tPEXut4B3zgTygFQxfKM3o-x99 Superbrain QD uIDE demonstration videos]
[[File:IDE SPEC.PDF|200px||left|]] - IDE Specification document
 
== Copyright ==
As I am a hobbyist, not a big business, I need to make a few things clear.
You are free use these designs for '''personal or commercial purposesonly''', on the following conditions:
* You do not attempt to take credit for the work I have put into designing and / or building any device offered here.
* You acknowledge my right to assert copyright and ownership of these designs.
* 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.
* All devices and/or PCBs I offer are supplied as-is and there is no warranty that they are fit for any particular purpose.
* Use for any commercial purpose is explicitly forbidden, this includes reverse engineering, selling or reselling the design or boards.
* Your agreement to these conditions is implicit on ordering any of these devices or PCBs from me.
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.
== How to contact me. ==
I am member "JonB" of the VCF and CPC Wiki Forums. If you need support or have any comments,
please start a new thread on the uIDE thread in the VCF CP/M forum here:
http://www.vcfed.org/forum/showthread.php?56162
Or on the relevant CPCWiki / Amstrad.ES forum liked linked to above. You could also PM me.. :)
Note: Forum registration is required.
* CPCWiki member Bryce, who provided a good deal of hardware advice and encouragement. Bryce is also a uIDE beta tester.
* 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/
* CPCWiki member d_kef, who has written [[HDCPM]] which allows uIDE-16 to work under CPM Plus on the CPC6128.
== Salutation ==
410
edits