News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Bryce

The DDI-2

Started by Bryce, 11:59, 26 August 13

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Bryce

Hi all,
        it's been a while since I've had the chance to work on something new for the CPC. This time I decided to do something for our CPC464 friends out there. This is the DDI-2 = replacement for the DDI-1 with some improvements. Back when I released the MegaFlash I was flooded with "Why didn't you do this....", "Why didn't you include that..." questions, all too late because the boards had been ordered, so this time I thought I'd ask for comments while the project is still in the early development stage. So first, this is what my goals were and the features it currently has:

DDI-2 Features:
- Physically compatible for use on 464 and 464+
- Smaller than the DDI-1
- Based on FDC9266 Floppy controller, not the µPD765.
- Single header connector for two floppy drives.
- Compatible with FD-1, 3.5in and HxC without any special cables or adapters.
- Mix of FD-1 / 3.5in / HxC possible at the same time.
- Onboard side switch for drives that can use it.
- Onboard Ready switch for drives that need it.
- EPROM with 4 selectable OSs (4x ROM 7)
- Disable switch for onboard ROM so that MegaFlash / ROMBoard OSs can be used.
- Edge connector on PCB.
- Through connector for connecting other expansions (50way header, not edge or Centronics)

Things it doesn't have for a reason: ABBA switch: I decided to leave this off just because of the physical size and expense of having a toggle switch on the PCB. If anyone has any suggestions for features or general comments, please let me know and I'll consider implementing them if it makes sense. And if any electronic knowledgable users spot any mistakes, then let me know too :)

Here's a sneak peek at what it looks like at the moment (yes floppy interfaces are complicated things). Don't try building this at the moment because (A) There's not enough info there to build it and (B) I haven't tested this yet.

Bryce.


TotO

I was sure that you worked on it. ;)
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Bryce

It's a long way from being finished, still lots of work to go :( Battling with the layout at the moment, going for SMD as much as possible, but it will still be a tight fit.

Bryce.

TotO

#3
Sure, it's just "paper". You will have to prototype it and make changes to work like expected...
But, it's a great project that will allow 464 users to use HxC and 3" real programs. :)

When you prototype will be OK, may be using a CPLD to move most of the logic will help to reduce the size, like I done on the CTC-AY ?
If possible, at end it will stay only something like : CPLD, FDC, EPROM, switches, diodes, resistors and capacitors.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

beaker

Sounds great  :D

In reference to the SMD, would it be worth making it a little larger and adding 64k RAM?
The reason being 64k limits the library of games, and given developers such as Tot0 aim their games at 128k disk only machines (with his excellent R-Type remake), this would provide an excellent all in one solution.

PS. I was thinking about buying this 464 in Ireland (http://www.adverts.ie/other-consoles-games/amstrad-cpc-464/3566950) so would be interested in one.

Bryce

Quote from: TotO on 13:52, 26 August 13
Sure, it's just "paper". You will have to prototype it and make changes to work like expected...
But, it's a great project that will allow 464 users to use HxC and 3" real programs. :)

When you prototype will be OK, may be using a CPLD to move most of the logic will help to reduce the size, like I done on the CTC-AY ?
If possible, at end it will stay only something like : CPLD, FDC, EPROM, switches, diodes, resistors and capacitors.

The synchronisation on a floppy controller is critical, so I would be very wary about using a CPLD. It's fine for the address decoding part, but replacing the logic between the FDC9266 and the floppy is just asking for trouble.

@Beaker: The expansion header is there to add as much RAM as you like :)

Bryce.

beaker

I was just thinking the RAM packs aren't readily available these days so would be a nice addition for someone with a bog standard 464...

Bryce

#7
Yes, but I'd prefer to do a seperate (512K) RAM expansion that would work on a 464 or 6128. That would also keep the price of the DDI-2 down.

Btw, I've managed to route it using only "old-school" parts :) I prefer using old parts for old computers, SMD just looks wrong connected to a CPC :)

Bryce.

Edit: Just in case you are interested, the current layout is 83mm x 104mm - 10mm higher and 30mm longer than a MegaFlash) and about 3/4 of a DDI-1.

steve

Could it read and write 1.44MB disks if the DOS were altered to allow it?

Bryce

Yes, it should, but I might have to add a few jumpers to allow you to set some FDC options before it would work. Need to check the datasheet.

Bryce.

TFM

#10
Ok, here a couple of important points:


- Please allow to addition of four floppies: DS0, 1, 2 and 3.
- Please allow to use a jumper to change the base IO address between the DDI-1 and the F1-S / F1-D.[nb]Yes, single change of the base address can simulate the Vortex F1-S / F1-D / M1-S and M1-D[/nb] Further it would allow to use the DDI-2 on an 6128 (what I would like to do).


I can provide details if you want :)
btw.: For all that hardware there is already supporting software.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Bryce

Send me details about F1, I wasn't aware of alternative addresses. I'm not sure about the four drives though? That would mean adding more gates, making it bigger and more expensive. How many people are really ever going to connect four drives to a CPC??

I also need to make some other changes though. Does FOS and other OSs actually use the "Side" command/signal in the µPD765, or do they depend on a physical side switch?

Bryce.

steve

It would be interesting to have 4 HD drives attached to the CPC, especially if side select is implemented, resulting in faster disk operations.
There are some CP/M programs written for 4 drives.

TFM

#13
FutureOS does use the side signal of the floppy. And I assume every DOS using something like a 0.7 MB format must use it.

If you provide DS0,1,2,3 instead of only DS0 and DS1 it should be just two wires more. Imagine to be able to have two 3" and two 3.25" inch drives. Making a COPY is then just done in light speed. :)

Ok, to the F1-D (and the three other similar products). Their trick is, that from the software side they completely behave like a DDI-1, but their I/O address is different.

The DDI-1 uses the following I/O addresses:
&FB7E - FDC 0 status
&FB7F - FDC 0 data

The F1-D, F1-S etc use this I/O addresses:
&FBF6 - FDC 1 status
&FBF7 - FDC 1 data

The FDC 0 is hereby the FDC in the DDI-1 or the 664 or 6128. The FDC 1 is hereby the FDC used in a couple of Vortex drives. Both are FDC765 and their only difference is that they have different I/O addresses (and Vortex floppies fully decode DS0,1,2 and 3).

BTW: The Motor ON port is the same for all floppies.[nb]Start FutureOS, goto the Monitor and click at P for Porting System, you see all those ports and you can play with them there. This will help you testing while developing hardware.[/nb]
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

TotO

#14
Adding features not commonly supported on 6128 will only make the board biggest and expensive for things that will be not supported by existing softwares.



"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

steve

512KB ram is not supported by existing software but that's no reason not to make a 512KB ram expansion some day.

TotO

#16
Quote from: steve on 22:37, 26 August 13
512KB ram is not supported by existing software but that's no reason not to make a 512KB ram expansion some day.
Vortex 512KB are supported by DISCOLOGY. But... Here, it's not the question... Adding RAM take space too.
464 users only said that they prefer Tape as Floppy. And now, you need 4 drives support ? Nice joke. :)
The CPC was made to support 2 drives, so it's cool if this expansion can do it too. Because, as usual, nobody will write softwares for not standard features.

"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Bryce

Quote from: TFM on 22:11, 26 August 13
FutureOS does use the side signal of the floppy. And I assume every DOS using something like a 0.7 MB format must use it.

If you provide DS0,1,2,3 instead of only DS0 and DS1 it should be just two wires more. Imagine to be able to have two 3" and two 3.25" inch drives. Making a COPY is then just done in light speed. :)

Ok, to the F1-D (and the three other similar products). Their trick is, that from the software side they completely behave like a DDI-1, but their I/O address is different.

The DDI-1 uses the following I/O addresses:
&FB7E - FDC 0 status
&FB7F - FDC 0 data

The F1-D, F1-S etc use this I/O addresses:
&FBF6 - FDC 1 status
&FBF7 - FDC 1 data

The FDC 0 is hereby the FDC in the DDI-1 or the 664 or 6128. The FDC 1 is hereby the FDC used in a couple of Vortex drives. Both are FDC765 and their only difference is that they have different I/O addresses (and Vortex floppies fully decode DS0,1,2 and 3).

BTW: The Motor ON port is the same for all floppies.[nb]Start FutureOS, goto the Monitor and click at P for Porting System, you see all those ports and you can play with them there. This will help you testing while developing hardware.[/nb]

The alternative addressing is only to avoid conflicts with the DDI-1 / 6128 controller. Why would my interface need that. It's not meant for 6128, just for 464 owners that miss having disk or HxC.

Regarding DS0 1 / 2 etc: These signals aren't just wires. The controller only has two outputs US0 and US1, these need to be decoded (00 = DS0 01 =DS1 10 = DS2 11 = DS3), so a few extra gates would be required. Each header only has 3 DS lines, so to allow all four you would need a second header too! And as I said, it's not like anyone is ever really going to use this regularly.

Bryce.

TotO

#18
I agree, as the only interest to support 4 drives on CPC was to play starwars music.  ;D
(but, supporting the HD mode may be interesting if it not require extra IC)
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Bryce

Regarding 1.44 formats. The FDC has a setting for 8in or 5.25in drives. The DDI-1 and 6128 set this to 8in, not 5.25 (which I wasn't expecting). So my interface is (obviously) set to 8in too. Does anyone know what it needs to be set to for 1.44 format? If this needs to be switched to allow some new tricks, I would add a jumper.

Bryce.

Cholo

Really great news this. The old DDI-1 is hard enough to get your hands on these day, nor is it "userfriendly" to retro games who want to hook up (more) modern drives like 3,5" floppy drive/HxC. No thru connector on the DDI-1 has definately also limited many users as well.

Having a ram expansion on the DDI-2 does sound nice but probably better to keep it off for several reasons. Say like adding a old DKtronic ram expansion actually changes the 464 system .. even thou its just a few bytes its still enough that some commercial games will fail to load (like the games protection checks ram size or CRC or similar or even unexpected run out of space). Same goes for 128k ram games. Commercial software been programmed toward the 6128 "stucture" i guess. Tried a couple of times to load Addams Family 128k from tape (official one) on my 464+dktronic 256k ram. Or loading Xexor on a 464+256k ram+DDI and sadly only see 5k ram free workspace (prepare yourself for a lot of disc swapping, lol). I fear adding the ram will actually "hurt" the DDI-2 compatability more than it would gain. Keeping it off you at least have the option to choose yourself.

720/1.44mb floppy drive compatability: The 6128 can usually access 720k floppies quite reliable but 1.44mb you'd need a ancient good quality floppy drive i recall. Being able to use a drive realiable for 1.44mb would be optimal if not having to worry too much about getting a "compatible" quality drive. Oh and the HxC is really great with its multiple compatability and thankfully there is "budget" versions of it as well .. but it does remind me that there is actually a lot of cheap floppy hardware emulators on ebay .. ive seen both SD and USB ones and 720/1.44mb both as well .. I know, they are probably all horrible incompatible in some way, but i thought id just throw it in as a crazy idea.

steve

If not 4 drives then how about a IDE interface for a CF "harddrive".

beaker

Really?? That surprises me only because back in the late 80's/early 90's I had a CPC 464 + DKTronics 64k RAM from new and the budget re-release of Addams Family I had loaded without problem from tape. I don't remember having any problems with any games that used the extra RAM. The only problems I remember with the 464 were basic programs that used 6128 only calls in the old Type-Ins section of AA...

TFM

Quote from: Bryce on 22:51, 26 August 13
The alternative addressing is only to avoid conflicts with the DDI-1 / 6128 controller. Why would my interface need that. It's not meant for 6128, just for 464 owners that miss having disk or HxC.

The Vortex-Addressing would enable 664 and 6128 Users to use it in addition. And an upgraded FDC should be accessible for everybody.

Software does exist for The four-drives-patch and for the alternative addressing. Plenty.

Quote from: Bryce on 22:51, 26 August 13Regarding DS0 1 / 2 etc: These signals aren't just wires. The controller only has two outputs US0 and US1, these need to be decoded (00 = DS0 01 =DS1 10 = DS2 11 = DS3), so a few extra gates would be required. Each header only has 3 DS lines, so to allow all four you would need a second header too! And as I said, it's not like anyone is ever really going to use this regularly.

Bryce.



Ok, that's just a simle 2 to 4 multiplexer, right?






But don't be offended if you ask for comments. I think I got two good points here, but it's your choice if you pick them up or not.

TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

TFM

Quote from: TotO on 22:55, 26 August 13
I agree, as the only interest to support 4 drives on CPC was to play starwars music.  ;D
(but, supporting the HD mode may be interesting if it not require extra IC)


There is absolutely no software for supporting HD formats. But there is plenty of software supporting 4 drives - and in contrast to HD formats - it does make sense to have four drives:


- Copy 3" to 3" or 3.5" to 3.5" directly (without the need of unplugging replugging drives all the time)
- Usage of 3", 3.5" and 5.25" discs ("")
- Access of up to about 3 MB of space (I wrote programs bigger than that already).



TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Powered by SMFPacks Menu Editor Mod