News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_JonB

CPC IDE adapter, anyone?

Started by JonB, 17:21, 07 February 17

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

JonB




Hello CPC-ers!


I had a lot of fun designing and building an IDE interface for the PCW (http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/who-wants-ide-drives-on-the-pcw/), so I thought I'd have a go at an IDE interface for the CPC. You know, just for a bit of a laugh.  :D


The board is designed with layout, although I haven't prototyped it yet (having said that, it should work - LOL). It's functionally identical to the uIDE device which was designed for the PCW and other Z80 computers, save that it uses 16 bit I/O addressing as is required by the CPC. The address range is entirely programmable via a set of jumpers (you set each jumper to 0 or 1 to spell out the base address of the IDE ATA registers) but the driver (written for the PCW, not for the CPC yet, but fairly straightforward) will use the same I/O range as the CPC_CompactFlash interface (FEF0-FEF7), on the grounds that if you have one of those, you do not need uIDE. The only limitation on the I/O address used by the device is that the 8 ATA-IDE registers must be in consecutive address locations. Hence you can only set the card to recognise A15-A3 as A2-A0 are used to address the IDE registers.


At this time, the driver supports CP/M Plus only.


This adapter is actually more universal than the previous one, and can be used in "8 bit addressing mode" by moving another jumper. This causes the decode logic to ignore the upper 8 bits of the Z80 address bus. So it will probably become the "new" uIDE card, however, for now it is called "uIDE 16".


If you want to see the PCW prototype in action, take a look at my YouTube "channel" (groan). This should tell you all you need to know about my presentation skills...  :picard: :
https://www.youtube.com/playlist?list=UUdH2u50ocnjPxPmEOyNVLsg


So now the only question I want to ask is "Who wants one"? Please review the PCW thread for details of connectivity options, BOM and 128Mb DOM offer. I will produce a CPC expansion port adapter for it and of course you will be able to use the Z80 shim card for internal mounting. Not sure if LHS or RHS is suitable, please open up your CPCs and choose. Prices for uIDE 16 may be slightly higher than uIDE as the board's a bit bigger (hence, more cost) and the expansion port adapter is unknown but not likely to be more than the PCW "lite" adapter.


I prefer not to assemble these boards as I don't have too much spare time, but I will build some. I haven't yet worked out how much this will cost, but don't expect it to be cheap, as there is a lot of hand soldering to be done, and of course the parts do cost as well. I am still trying to come up for a figure for the uIDE assembly, it is surprisingly complicated to work out.


If you are interested in this add on, please indicate quantities of uIDE 16 boards and connectivity option, whether you want me to assemble it and whether you want a 128Mb DOM with it. You also need a 40 way IDC-IDC ribbon connector (such as is used to connect ATA hard disks to PC motherboards) to connect the uIDE 16 to the connection card. The DOM is tiny and fits straight onto the board, especially if you use a 90 degree IDC header (recommended at both ends of the board because uIDE is the start of an extendible bus based system).


Before I go, here is a rendering of the finished board.


[attach=2]


Cheers
JonB

arnoldemu

#1
can the i/o port be configured to fd08-fd0f?

this is used by two ide devices (symbiface 2 and x-mass - and it seems both are now discontniued). if you use the same then all the software written for these can be used with your interface.

(symbos, acmedos, bonnydos and there is more)

if you made a driver for cp/m for cpc then yours would be the first for ata.

dobbertin hd20 and i think vortex wd20 can load under cpm but they are not ata devices.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

PulkoMandy

The CPC-CompactFlash mentionned in the IO port summary I think never left the status of an hand-wired prototype on my bench. It puts the CF card in 8-bit mode by z80 software at boot.
The Symbiface does a 16-bit to 8-bit conversion in hardware, and the X-Mass holds the CPC in reset and switches the CF to 8-bit mode by itself before letting the CPC boot.


There are no drivers for the CPC-CompactFlash. SyX started hacking on BonnyDOS to change the IO registers and add the init code, but we had problems with the CF card resetting itself to 16bit mode. Not sure if it was because of unreliable assembly of the prototype, or some design flaw in my decoding logic. The project was mostly stopped there and I moved on to USB and SD card storage instead.


So yes, if you are compatible with them, use the Symbiface/X-Mass IO ports. I can probably rewire my prototype to use these addresses too, so I can use your drivers :D

rpalmer

lets not forget that there are IDE to CF adaptors as well.

JonB

#4
A few points:

       
  • There is a CP/M Plus driver suite (driver, formatter and IDE test program) for the uIDE-8 card (as used on the PCW) and it can be altered for uIDE-16 (CPC card) easily. It sets 8-bit mode on start up and uses LBA. Note: all IN / OUT instructions are bracketed by DI/EI instructions to prevent interrupts during data transfer.
  • The format is CP/M native. This means you cannot read the content of the IDE device using DOS, Windows or SymbOS. Prodatron says SymbOS uses FAT, so if you format the IDE device for FAT you can use it under SymbOS but not CP/M.
  • The CP/M driver doesn't support cold booting yet.
  • The I/O base address is configurable, via that long line of jumpers you see on the board, but the 8 IDE registers must be in consecutive locations, so you can only configure A15-A3.
  • uIDE-16 is not tested with CF cards (in fact, not tested at all yet!). Minimum requirement is that the CF card has at least 128MB and supports LBA and 8-bit modes. A smaller card may work, but some drives may be inaccessible. Each CP/M drive uses 8MB of the CF card space. On the other hand, I can supply a suitable 128MB DOM for £4, which is smaller than a CF card + adapter, and works well.
  • Prodatron will support uIDE-16 in SymbOS. He says the existing code needs to be altered. YMMV.
  • Bare board is likely to cost around £9.
  • Also required, either a Z80 shim card (£2.50) or an expansion port adapter which I haven't designed yet (£4 based on the PCW expansion port adapter).
  • All plus P&P and PayPal fees (3.5% I think).
  • I cannot commit to provide assembled boards unless I have at least 10 orders, and they will not be terribly cheap. I recommend self-assembly.

JonB


Having investigated the parts cost and likely assembly time, I decided that I can't offer these boards assembled unless I have at least 10 orders (of each board that people want).


So, if you want the boards assembled, please add the following to the board cost, which includes parts and labour:

       
  • uIDE-16 - £38
  • 6128 expansion adapter - £20 (based on cost of PCW "Lite" expansion adapter)
  • Z80 shim (LHS or RHS) - £15
Yes, there is a cost to assemble (my time) but it is minimal. I won't be retiring on this!

Cpcmaniaco

I am interested on 1 of this new CPC hardware.




JonB

Quote from: Cpcmaniaco on 10:58, 09 February 17
I am interested on 1 of this new CPC hardware.


Please state your preferences:

       
  • Expansion port adapter or Z80 Shim?
  • Assembled or bare boards?
Thanks
JonB

JonB

#8
CPC Expansion Port adapter.


[attach=2]

Fits to the expansion port with the card front (the face you can see in the picture) pointing at the monitor. The edge connector should be fitted to the rear. Pin 1 is on the right, oddly. I am not sure if it can be seen from the front of the machine when in use, but the power light can be oriented towards the user if need be. Direct attachment of a uIDE may not be practicable in this application as it will stick up above the top of the 6128 and look messy, although you may be able to mount it in front or on top of the adapter with a very short bus cable. Alternatively, it can be sited further away with a longer cable. We will see..


The "Unused" header provides access to the signal lines that are not used by the adapter (because they are 6128 specific signals that are not on the Z80 bus, or vice versa). These are:-


[attach=3]

The GND connections are there as a convenience, next to LPEN and CURSOR, on the "grounds" that these signals are the most likely to be immediately used (a guess on my part). The adapter also provides Audio out from the expansion port and a 5v power connection that you can use to power up any small boards you want to connect up (such as a light pen or small audio amplifier).

;D

Cpcmaniaco

With CPC Expansion Port adapter and assembled.


Thanks.

JonB


yannis_uno

#11
Also, one for me please! :)




Assembled with CPC Expansion Port adapter and DOM.

zhulien

i'd lke 2 for z80 sockets please

Scarlettkitten

#13
I'd like one for z80 socket please unassembled  :)  with DOM
Sophie Rose:- My musical works https://soundcloud.com/sophierosemusics

JonB

@yannis_uno
@zhulien
@Scarlettkitten


Added to list. Boards only (with DOM if you asked for one).

Audronic

@JonB


I would like to be included, Expansion Port Bare Boards Please


Thanks     Ray
Procrastinators Unite,
If it Ain't Broke PLEASE Don't Fix it.
I keep telling you I am Not Pedantic.
As I Live " Down Under " I Take my Gravity Tablets and Wear my Magnetic Boots to Keep me from Falling off.

JonB

OK Ray (and your other post is noted, thanks).

zhulien

Hi JonB, will this work with all the 44 pin DOMs (like the Symbiface 2) or only 8 bits of it? 

JonB

Sorry I don't understand your question.


The DOM is a 40 pin IDE PATA device.


The driver runs the DOM in ATA 8 bit mode.


The interface does not support 16 bit data transfers.

zhulien

Quote from: JonB on 21:26, 11 February 17
The DOM is a 40 pin IDE PATA device.


The driver runs the DOM in ATA 8 bit mode.


The interface does not support 16 bit data transfers.

ok.  x-mass uses 44pin dom with 8 bit mode. symbiface needs an adapter to use the 44pin dom, but it seems to work in 16bit mode.

I will need 2 doms if you are going to use 40pin doms. Prefer the z80 boards assembled. thanks

angelcaio

Great work,  It looks awesome, but i still have a lot of questions:

- Is possible connect to a MX4 board?   I have a vertical adapter mx4 to edge 50  and only one slot free thus whit it can only connect vertically. If not,  exist a cable to do this?  (In the rest of slots are a X-MEM, a X-MASS, a MiniBooster and at end of the board, a DDI-1 Clone connected with a Edge-50 adaptor in 'L' format). 



- I prefer a fully functional one, with everything (include the DOM or CF Card) to simply plug it in and it work, is it possible?

- Is compatible with the ramdrive of Toto X-Mem?

- Is there any CP/M+ patched or how can I patch it?, I have a CPC-464 with the X-MEM expansion memory  and I use the CP/M+ that installs the configuration program, in ROM (|EMS) and the "CP/M+ for 464"  http://www.cpc-power.com/index.php?page=detail&num=7160

Thanks in avance.


Enviado desde mi iPad utilizando Tapatalk

JonB

That's a nice looking rig!


OK.. lemme think... Yes you can connect it to your bus with one of these approaches:

       
  • If you use the edge connector adapter in your second picture, then a short 50 way IDC edge connector - IDC female plug
  • Or, a 50 way IDC male header on a 50 way ribbon to a 50 way female IDC connector (like a sort of extender).
  • You could also solder a 50 way right angle header (2x25 just like that board in the second picture) to the adapter and it will probably fit, although you might need to shave my board a little
In all cases, be aware of the orientaton of the sockets.


That bus is basically what I was proposing for the PCW, but 40 pin with all the CPU signals on it.

JonB

#22
This cable will do it.


[attach=2]


It's the second option in my list. Left hand side plugs into the bus board, right hand side plugs into the 6128 bus adapter, then you plug uIDE-16 into the bus adapter. However, I do think standing the adapter up like your other cards is the better solution (cheaper too).


What else? Oh yes. Assembly. I will only offer this if enough people want it (because I will need to buy the parts in bulk). So I need at least 10 people wanting assembly. So far there are 4 including you. But you never know who else will step forward so don't give up hope yet.


Compatibility with ToTo's extensions cannot be guaranteed, however the PCW CP/M Plus driver uses the FID interface to request the "next available" drive repeatedly until the machine runs out of space (DPH/DPB space). Which means that if ToTo's ramdisk uses a CP/M drive letter, mine will just skip it and go to the next one. On the PCW you have M: as a ramdisk, and my driver works fine with this.


CP/M Plus drivers for the 6128 will be provided by me (just a port of my PCW driver) and I believe Prodatron is going to port SymbOS drivers too. They do not support cold booting or AMSDOS though, so you still need a floppy disk to start the machine.


[Edit: 6128 does not support the PCW FID driver scheme so the PCW driver can't be ported as-is. As a result, the driver will be delayed.]

angelcaio

Quote from: JonB on 16:37, 12 February 17
This cable will do it.


[attach=2]


It's the second option in my list. Left hand side plugs into the bus board, right hand side plugs into the 6128 bus adapter, then you plug uIDE-16 into the bus adapter. However, I do think standing the adapter up like your other cards is the better solution (cheaper too).


What else? Oh yes. Assembly. I will only offer this if enough people want it (because I will need to buy the parts in bulk). So I need at least 10 people wanting assembly. So far there are 4 including you. But you never know who else will step forward so don't give up hope yet.


Compatibility with ToTo's extensions cannot be guaranteed, however the PCW CP/M Plus driver uses the FID interface to request the "next available" drive repeatedly until the machine runs out of space (DPH/DPB space). Which means that if ToTo's ramdisk uses a CP/M drive letter, mine will just skip it and go to the next one. On the PCW you have M: as a ramdisk, and my driver works fine with this.


CP/M Plus drivers for the 6128 will be provided by me (just a port of my PCW driver) and I believe Prodatron is going to port SymbOS drivers too. They do not support cold booting or AMSDOS though, so you still need a floppy disk to start the machine.
Thanks for your fast answer and i confirm: i want one assembled and connected as you suggest, with your adapter and my converter.



Enviado desde mi iPad utilizando Tapatalk

JonB

#24
Quote from: angelcaio on 18:46, 12 February 17
Thanks for your fast answer and i confirm: i want one assembled and connected as you suggest, with your adapter and my converter.



Enviado desde mi iPad utilizando Tapatalk


I wasn't planning to offer cables, but I can advise. You need 50 way IDC edge connector, a short length of 50 way cable and a 50 way IDC male connector. Then crimp the edge connector on one end and the IDC male connector onto the other end. But I wouldn't do it this way if I were you, those edge connectors are expensive. I'd see if the adapter will fit directly onto your bus board first. Don't forget you have another cable to go from the adapter to the uIDE board (use a 40 - 40 way IDC connector, same as you find in PCs to connect HDDs to the motherboard).


Alternatively, with your adapter, just plug my expansion port adapter into it (with edge connector). Means it will be lying down at 90 degrees to your adapter, and I can't be sure it will fit or what its orientation will be.

Powered by SMFPacks Menu Editor Mod