News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_zanxion72

Upgrading a CPC464 with a disk drive.

Started by zanxion72, 17:50, 23 October 11

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

zanxion72

After years of adolescence away from my CPC6128, the spirit within me has fallen back to those magic years of absolutely enjoyable immaturity of 8bit computing. I have bought a perfect CPC464 (although I had a CPC6128, that colourful keyboard has always amazed me). Now I want to add everything I can to it, starting with a D'ktronics 64k RAM expansion (found) and some 3" disk system to run the floppies of my CPC6128 too.
What would be the best way to add a disk system to it? should I go for a DDI-1, or any other custom solution for a 3.5" disk drive? If I opt for a custom drive solution is it possible to make my CPC464 disk drive capable without modifying the ROM inside it?
To 8bit or not to 8bit?

fano

#1
Afaik , you need to get a DDI-1 extension as CPC464 does not own FDC (and ROM) to use a floppy drive.DDI contains FDC and disc ROM , i do not know any other alternative.
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

Bryce

No matter what solution you choose, 3in, 3.5in, 5.25in or HxC, you'll need a disc controller and the easiest way to do this is to use a DDI-1.

Bryce.

zanxion72

So that would be getting a DDI-1 no matter what drive to be used. If doing so and while having a total 128K of RAM, would it make it fully 6128 compatible? Will it be capable of running CP/M software the 6128 does?
To 8bit or not to 8bit?

Bryce

Not sure about the CP/M stuff, but I'm sure someone else can tell you that. Otherwise it's almost 6128 compatible. You will still be running BASIC 1.0, whereas the 6128 has BASIC 1.1.

Bryce.

zanxion72

Oh! It gets more and more complex. I'd better fix that CPC6128 I have (dead drive). I'll either fix my old CPC6128 or get another one from ebay.
To 8bit or not to 8bit?

Zetr0

Quote from: Bryce on 08:25, 24 October 11
Not sure about the CP/M stuff, but I'm sure someone else can tell you that. Otherwise it's almost 6128 compatible. You will still be running BASIC 1.0, whereas the 6128 has BASIC 1.1.

Bryce.

Would a ROM replacement work in this instance?

say a dupe of the 6128 ROM installed on the 464 (with the 64k of extra RAM and the DD-1 interface)

would there still be that memory contention area... page 7 isn't it.... (its a little fuzzy here need to read more specifications... or perhaps less LOL!)
If I had a hammer.....

Bryce

I'm not sure it would work, I've never tried it. You would need to replace both the BASIC and the Firmware ROMs because they are matched.

Bryce.

zanxion72

I wouldn't dare messing up my CPC464 that much. It is a mint hard to find in such state. I'll get suicidal if it fail :)
I have read somewhere about solutions like parados, but yet I would need a rombox for it.
To 8bit or not to 8bit?

Bryce

Well ParaDOS is for replacing ROM7 AmsDOS, not ROM 0 or the firmware and you would still need a DDI-1 to control the drive.

Bryce.

zanxion72

So the ddi-1 is more like a controller for the CPC, correct? I would still need one no matter what drive option I go for.
To 8bit or not to 8bit?

steve

The DDI-1 is the electronics needed to control the disk drives, it is only needed on the 464 as the 664 and 6128 already have both the controller and drive built in.

Bryce

The main parts of the DDI-1 are: The ROM(7) which contains AmsDOS to give you all the commands you need to use the drive, The 765 disk controller and the data splitter. A 664/6128 has all these inside, but the 464 only gets them when the DDI-1 is connected. None of the parts are needed for the tape drive.

Bryce.

MacDeath

Concerning the FDC.

Do you have to get the same as the one used by Amstrad (what is the reference ?) or are some other chips compatible or even better (yet compatible) ?

Also is it possible to emulate the FDC with something like an Arduino perhaps or any re-programable chip/lab-board ?

Or simplier, can those chip still be found somewhere ?

Womble

The floppy controller chips are easily found on ebay but you would need to build the circuit board to make use of it. Almost certainly it can be emulated but no one has bothered that I know of so you would have to do that too. The controller chip is only half the problem as has been stated, the CPC464 rom has no concept of floppy drives as it stands, the comands are missing, the DDI interface also contains a ROM whose contents are paged into the CPC on boot up which adds the dfs functionality. You might be able to replace the ROM in the CPC with one containing the 6128 ROM data and it might work, but you would have to desolder the the 464's ROM to even try as they were soldered in even on the early models. You would also lose the tape functionality as the 6128 would not have the code required to drive a tape that it never had.

The simplest option might be just to be prepared to throw enough coin at the next one on ebay that you see. I decided I had to have the last one I saw here (pretty rare in Australia) and almost certainly didn't get it for a bargain price, but I do now have one sat on my desk. It needed a new drive belt as the old one was so loose it could only turn the spindle when there was no disk in it, and the CPC464 edge connector needed to be polished before it the two would talk but it now works a treat.

The benefit is that everything is kept original too,  the only pain is a lightening of the bank balance.

MaV

Quote from: Womble on 07:01, 25 October 11
You would also lose the tape functionality as the 6128 would not have the code required to drive a tape that it never had.

The 6128 does retain the tape functionality of the 464. No problem there.
Black Mesa Transit Announcement System:
"Work safe, work smart. Your future depends on it."

Womble

Quote from: MaV on 07:14, 25 October 11
The 6128 does retain the tape functionality of the 464. No problem there.

Surprising seeing as the space is limited, tho I suppose they would mess up rom entry points if they moved things around.

arnoldemu

Quote from: Womble on 07:24, 25 October 11
Surprising seeing as the space is limited, tho I suppose they would mess up rom entry points if they moved things around.
Access to the rom functions is done through a jump table in ram. This is the "firmware jumpblock" and sits between &bb00-&bf00.
There is another that sits between &0000 and &0040.
A CPU CALL  instruction redirects into the rom. You can also patch it with your own jump/call so that you can override the functionality.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

MaV

Quote from: Womble on 07:24, 25 October 11
Surprising seeing as the space is limited, tho I suppose they would mess up rom entry points if they moved things around.

Seems, that there was enough room left to add.

The tape functionality is unchanged - without checking I guess it's moved a bit in the ROM. The firmware provides the calls in RAM via a jumpblock, it copies the entry points to the RAM during initialization; and you usually only need call those firmware entry points. Then the floppy ROM is initialized, which patches the original tape routines to work for the floppy drive. With |tape and |disc - commands from the floppy ROM - you can switch back and forth. The beauty of a firmware. :)

So, in theory all one needs to add to a 464 is the floppy disc + controller hardware (like fdc), the extra RAM (which must work exactly like the 6128's) and the 6128's ROMs. The latter is probably only useful for compatibility. My guess is the 464's ROMs should work as well - e.g. ideally CP/M+ also calls firmware routines via the firmware jumps. IIRC, CP/M+ BDOS even provides the means to do that (for internal use only since using this in CP/M programs would break compatibility with other CP/M systems).
Black Mesa Transit Announcement System:
"Work safe, work smart. Your future depends on it."

Bryce

The 6128 has all the commands required to load tapes too. But the AmsDOS ROM is a separate IC, ie: the 6128 has 3 ROM images (Firmware, Basic, DOS) in two ICs, whereas the 464 has 2 ROM images (Firmware, Basic) in one IC.

So it's not a case of swapping an IC, but adding an additional one.

The FDC (µ765) is quite difficult/expensive to find and there are no suitable modern equivalents. It would be difficult to emulate one in MacDeaths Favourite: Arduino (@MacDeath: Do you get royalties for all your Arduino marketing :D ) because it needs to react in real-time, but it could be emulated with a CPLD or FPGA.

Bryce.

Cholo

Ah yes, ye old 464 (+DDI+ram) vs 6128 compare.

I strongly suggest fixing your 6128 for a whole number of reasons:

1. Reason: Cash. Getting a DDI interface +drive and a ram expansion is easily 4x times more expensive and 4x times as hard (rare) too.

2. Reason: Software compatability.
- The 6128 has nearly 100% software compatability. Not only commercial software but especially "homebrew" type-in compatability is having real trouble on the 464. Not that good software programmers didnt think of both systems and even programmed game like Shinobi that runs on both and even recognise that the 6128 has more memory so you get additional sample speech and music .. but sadly most of those software dosnt recognise a 464+extra ram. Also there is a few "6128" specific games out there.
- Type-in's is where it really hurts. SO many type-ins use the 6128 basic 1.1´s extra graphics commandos .. purely guessing here but probably 30% dont work on the 464? (or more?). I can still remember picking up Amstrad Action magazine and discover 75% of the typeins was marked "6128 only".

3. Reason: Hardware.
- Every time you expand your 464 the hardware modules actually eat a bit of free ram from your 464 so you can even get into troubles as some 464 software wont run anymore. 6128 however is already born "fully expanded".
- Further expansion is also quite easy on a 6128 (like if u need a 3,5" second drive or HxC floppy emulator you can just hook it up). Further expansion on a 464 is pretty hard and complicated.

Anyways, a 6128+cassette lead is the way to go if you want a "easy ride".

If you dont have a cassette lead for your 6128 you can get one from:
http://www.dataserve-retro.co.uk/contents/en-uk/d18.html
or
http://www.ebay.co.uk/itm/Amstrad-CPC-6128-High-Quality-Cassette-Tape-Leads-Cable-/250903444573?pt=UK_Video_Games_Cables_and_Adaptors&hash=item3a6b02bc5d
or similar.

zanxion72

Thanks Cholo,
I have replaced the drive of my 6128 with that from a Schneider bought yesterday for 20euros. It works flawlessly now and I have all I've been looking for. I will start modding the  German one starting with the empty drive bay on it.
To 8bit or not to 8bit?

Gryzor

Heya mate,

If you want I can sell you a 3.5" drive (in a nice black metal case, built by a fellow Greek user) for what I paid - €60. Never used, had bought it as a backup unit. I'm not looking to sell it, but for a compatriot in need I'd be willing to part with it :)

zanxion72

Hi Gryzor,
I have a 3.5" one for my 6128. Thanks for the offer. Mainly I was interested in upgrading my 464 to becoming fully compatible with my 6128 (that was the one I had, hence a lot of floppies, while for the 464 I have just two tapes).
I was hoping for a non hardware modification solution as it is in mint condition (boxed, clean, no scratches or signs of use), because if things fail it will be hard to find another one in such condition.


To 8bit or not to 8bit?

Gryzor

No problem. Well, you read all the previous replies; maybe you should try finding another 464 to experiment on?

PS Pics, please! :)

Powered by SMFPacks Menu Editor Mod