avatar_JonB

Who wants IDE drives on the PCW?

Started by JonB, 12:43, 22 January 17

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

JonB

Hi


Now I have the PCW IDE driver working with my prototype hardware, I am looking to get some boards designed and fabricated. Who's interested in buying one (or more)? There are several options:

       
  • I design a board and you pay the fabricator to produce some (someone like OSHPark). You buy the components listed in the BOM (Bill of Materials) and build it.
  • I get boards fabricated and you buy the BOM and build it.
  • I supply fully built boards (not likely to be as cheap) or a kit of parts.
There are some design options, too:

       
  • IDE adapter connects to the PCW edge connector via a 50 way ribbon cable. Additional cost, about a tenner (the edge connector is expensive). Occupies the edge connector, so you may not be able to plug in other accessories.
  • Adapter connects to the 50 pin header on the PCW motherboard. Requires some soldering - you need to fit a header to the PCW board and because it's flow soldered you may need to clear the holes of solder first (my 9512 has the holes filled, but my 8256 has them clear).
  • Adapter connects to the Z80 socket via a shim card (which goes between the z80 and its socket). This then connects to the adapter via a 40 way IDC cable (such as you would use to connect a PC to an IDE drive). This may not be a good option if your Z80 isn't in a socket (again, my 9512 has an unsocketed Z80, but the 8256 has a socket). This would be my preference, becasue it cna be applied to other Z80 machines.
  • The I/O base address of the prototye is C0h. The board design will allow you to remap it using jumpers to any other address that is free (such as A0h, which is used by at least one hard drive accessory that was available BITD). Note, remapping requires a new driver, which I will supply.
Before I expend huge amounts of effort on this, I'd like to get an idea of who will be interested and what the preferred design option is. The objective is to produce something cheap - don't expect it to cost more than (say) £30 all in.

Quick demo:
https://youtu.be/fNb4eoOV6Ik - should be viewable at 1:00pm UK time 22/01/2017 (currently uploading it).

Please reply below.


Cheers
JonB

HAL6128

This is CPM IDE driver, wow! Wouldn't it be possible to get this driver working on a CPC with a IDE connected?
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

JonB

#2
Yes, possible, but this is PCW only for now. The CPC is next. It uses a different method to address I/O devices and its expansion port is different to the PCW's, so a different adapter might be needed.

HAL6128

Understand. I don't own a PCW but working with CP/M together with a hardrive would be a dream. Sadly I have no clue about writing a driver for CP/M.  :(
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

JonB

I intend to do it. No need for sad faces.


:)

greatwolf1283

This'd be something I'd really be interested in.  Ideally I'd like two of them for both my 8256 and 9512.  In terms of board layout, I'd be much more keen on the third one with the shim card attaching to the Z80 socket.  Just personal preference although anything that would allow me to continue using my other add-ons that I've got would be good.  Not too fussed over how the boards are done, although again my preference would be for them to be made in a single batch and then I'd just but the components and fit them myself.  Do enjoy my soldering so it'd be another pleasent diversion for me.  Also, getting all the boards made as a batch would potentially bring the price down per indivdidual board depending on how many were manufactured.

GeoffB17

#6
Jon,


Yes please, I'd be interested.


However, I'd MUCH prefer the edge connector to plug onto the extrusion (assuming that it could also plug onto the extrusion carried thru the SIO box).


This would be more helpful, as I would not be using the unit all the time.




I generally have the SIO connected, as this has a clock/battery chip in which I find some use.


More important, I'm happily using my PCW with the 5.25" A: and 3.5" B:.   I need to use CP/M 1.1 for this, and 1.1 seems to be the only system that has allowed a 'patch' to keep the 5.25" A: working OK with both formats that I use (SS and DS).   But of course, to use your system I will need a later version, like say the 2.9 which I do have so I can use the FID.


Anyway, the edge connector option seems pref for me.   But I might be persuaded.


No idea if my Z80 is on a socket or not.   Next time I'm inside, I'll look.


Geoff

JonB

#7
What? CP/M 1.1 on a PCW?  :o


You know my driver is FID based. It will not work with CP/M 1.1 although I do know how to build it for 2.2.

GeoffB17

#8
OK.


All my earlier references to 'CP/M xxx' please read 'CP/M+ xxx' as per the version ## that appears on screen when you boot.   I note that on your new video you're using 2.12, however I have 2.9 which also copes with FIDs.


;-)


Oh, just to complete the rest of the original question, I'd be fine if I could get a board made, then I'd just get rest of bits and make it up.   Soldering not too bad.


Geoff

JonB

#9
Ah you meant the Amstrad version.. yes, no reason why it won't work for you, as long as it supports FIDs.

Bryce

Now is the time to look at what changes are required to make it CPC compatible, before you start producing anything. With clever layout or even multiple population you could make it a PCW/CPC device.

Bryce.

Audronic

@JonB


I would like 1 (One) fully assembled, so i can plug it on the back of the PCW.


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

#12
Quote from: Bryce on 23:08, 22 January 17
Now is the time to look at what changes are required to make it CPC compatible, before you start producing anything. With clever layout or even multiple population you could make it a PCW/CPC device.

Bryce.


Isn't it just using A8-A15 for the I/O address lines, and a different IN/OUT instruction? But the CPC's expansion port is different, too.. and it would either need a patch area for that, or at least 3 extra chips. I don't want to use any programmable logic here.

Bryce

I haven't looked at the schematics, so I can't say, but maybe it would be possible with just an adapter connector in the middle and some jumpers. With multiple population I meant that the position for the alternative ICs would be on the PCB, but you only populate the ICs needed for the system you intend using it on.

Bryce.

JonB

Bigger PCB = higher cost.


But I'm getting ahead of myself! I first need to familiarise myself with some PCB design software.

JonB

Incidentally, it seems to work with Locoscript:


[attach=2]


Although the driver claims it is allocating all unused drives from C: to P:, in practice Loco stops at M:. So:

       
  • Under Loco your IDE drives are C: D: E: F: G: H: I: J: K: L:.
  • Under CP/M Plus, you get C: D: E: F: G: H:, because it runs out of memory after H:.

Audronic

@JonB


Could you tell all as to what the board is that holds the DOM ?
Is it the same as the model 4P that Gazza and i were working with ??


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

#17
My prototype uses a TRS-80 Model 4 IDE adapter that VCF users Hans01 & Gazza developed from the old schematic on the LoTech site, which itself is a derivative of a design attributed to Larry Campanell / Andrew Quinn. My design is also a derivative with slightly different CE logic. After all, there are only so many ways to connect a device to a bus! But it is different to the commercial LoTech TRS-80 card, because it doesn't have any of the line driver / buffering.

So for reference it is like Andrew Quinn's design: http://www.qsl.net/zl1wjq/trside1.htm

To connect Hans01's board to the PCW I built a 50 way IDC breakout board, then used jumper links to connect each required pin to the corresponding pin on the 50 way TRS-80 adapter box header. I do not use the EXTIOSEL line. Ther is a 50 way edge - 50 way IDC cable to connect the PCW's expansion port to the breakout card.

If you review the intro videos you can see the prototype adapter: https://www.youtube.com/channel/UCdH2u50ocnjPxPmEOyNVLsg

I tested it with the Rev.2 LoTech TRS-80 IDE adapter but it doesn't work properly with the PCW, so I guess we need to keep it simple.

Audronic

@JonB
Ok the Video made it clear.
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.

MaV

Black Mesa Transit Announcement System:
"Work safe, work smart. Your future depends on it."

JonB

OK MaV


Just a couple of minor concerns. First off, the PCW does not work properly with the LoTech adapter card. Secondly, having reviewed the VCF forum thread about the LoTech card and its design, I am concerned that we may have compatibility problems with some IDE devices. I recommend the PQi DOM is used (128Mb).

HAL6128

#21
@JonB
Just a short (and inexperienced) question regarding the CP/M IDE Driver. The IDE (PQI DOM & Controller/Decoder - as used in the X-Mass) uses 512 Bytes sector size whereas CP/M 2.2 has fix size of 128 Bytes. CP/M is able to handle 2000 tracks = 8MB?
That means that you have to partionize the hard drive into 16 Partitions / drives or less?
So, the only thing is to tell CP/M addressing via LBA and dividing the 512 Byte sector stored in the IDE Buffer by 4 clusters, and read it separately out (means change only the BIOS of CP/M)? Am I right?
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

JonB

#22
Not quite.


Yes, it uses LBA, as a convenience so we don't need to know the disk's physical geometry. The PCW and CPC have built in sector blocking/deblocking, and the IDE device is running in 8 bit mode, too. Thus we can use all the space on the drive. Under CP/M 2.2, the driver implements the sector blocking routine itself. (This particular driver runs on the TRS-80 Model II.)


The IDE sector size is 512 bytes, incidentally, which is nice because the PCW's CP/M Plus implementation does likewise. But you must read all 512 bytes when you get a sector from the drive. Without blocking/deblocking, this would be inefficient (in terms of drive space wastage).


Although the FID interface was new to me, it does make much of the work easy. CP/M 2.2 could do with something like this. Most of the work in that driver was working out how to patch the OS and implement the rather advanced drive mapping scheme. Hard work, but fun and ultimately rewarding!

JonB

#23
Now this is what we call an "untested design", because I don't have the materials to prototype it yet, and I did rather get sucked into KiCad. As it is intended to be universal, there is a set of three way jumpers to set the I/O base address of the IDE registers. The driver currently has it as C8h, but we can easily change that to something else. To get C8, you set the jumpers as 1 1 0 0 1 (A7 A6 A5 A4 A3 respectively). You can set any other base address just by resetting the jumpers, but of course, the driver must be (re)built for it.


Pwr is the power LED, and Act is the drive activity light, which flashes when the PCW is accessing the drive. I'd suggest a red LED for power and amber for activity. Or, you could mount headers here and have your lights remotely mounted (say, in the unused front panel of the PCW's spare drive).


[attach=2]


Don't worry about the "Z80 shim connector" reference. You will have two options to plug it into a PCW:

       
  • Use a Z80 shim card to connect the uIDE internally, via the Z80 socket, or (if your Z80 isn't socketed or you don't fancy messing with it)..
  • Use a PCW expansion connector adapter to connect the uIDE to the back of the PCW.
I plan to produce both Z80 shim and PCW adapter boards, too, but for the time being you can buy shims from Zaxxon here: https://www.sellmyretro.com/offer/details/21802. Open up your PCW and see if the Z80 is in a socket. It is right next to the expansion edge connector, you can't miss it.

Mine is socketed, but my 9512 has it soldered directly to the board. The pin header I mentioned earlier (which you might use for an internal expansion connector) is a non standard pitch, so it will be difficult to connect a cable to it. Amstrad cheapskates..  >:(

It will be possible to connect this to the CPC machines using another expansion port adapter, but not via the Z80 shim method.

Cheers
JonB

JonB

#24
Prototype Mk 2

[attach=2]



       
  • The card at the top is the prototype PCW expansion port adapter and the ribbon cable is connected to the PCW expansion edge connector.
  • The card on the left contains the decode logic and activity light.
  • The green card is just providing connectivity to the IDE card's D0-D7, /CE0 and /CF_READ /CF_WRITE signals.
This design appears to be working but I have a lot of testing to do and I need to lay out the Z80 shim and PCW expansion port PCBs. The Mk2 layout is smaller than the one I posted previously and the components are moved around a bit. It also has an additional power connector and wider tracks for +5v and GND. 

Powered by SMFPacks Menu Editor Mod