You guys have been most helpful here and it's greatly appreciated.
I am wondering if there is some documentation that can tell me what signals to expect at the FDD plug / socket on the mother board of a CPC6128.
I am wondering about frequencies first so that I can decide if I can 'bit bang' it with a micro-controller or use some supporting oscillator with a micro or go straight to FPGA or CPLD.
Any pointers ?
Thanks heaps guys.
It's a standard Shugart connector, so you can directly connect any drive. However use MFM mode, not HD mode (the latter would require to double up the frequency of the FDC).
Look at the wiki itself to find all needed docs for FDC and the Connector. :)
Quote from: RobertM on 10:02, 11 February 16
I am wondering if there is some documentation that can tell me what signals to expect at the FDD plug / socket on the mother board of a CPC6128.
I am wondering about frequencies first so that I can decide if I can 'bit bang' it with a micro-controller or use some supporting oscillator with a micro or go straight to FPGA or CPLD.
Any pointers ?
One word: HxC 8)
A few more words/names: Shugart, Lesea & Zaks (of Programming the Z80 (http://www.z80.info/zip/zaks_book.pdf) fame) http://bitsavers.trailing-edge.com/pdf/shugart/_appNotes/Lesea_Floppy_May78.pdf (http://bitsavers.trailing-edge.com/pdf/shugart/_appNotes/Lesea_Floppy_May78.pdf) (N.B. from a time when 5.25" was called the
mini floppy, as opposed to 8")
OK, After much frustration reading so much about FDD's I just thought - at the end of all this I will need some sort of LCD display so that the FDD emulation is independent of the software running in the CPC.
So I am thinking of a PLAN 'B'.
I see a ROM DIS signal on the expansion connector and that provides an opportunity to load different code at boot. Well I hope it can be used this way ???
Here is what I am thinking ...
Compact flash cards can be read / written to by windows using FAT32 file system.
The FAT32 file system includes a boot sector.
Compact Flash Cards are almost a complete *standard* IDE interface.
Why don't I just make a circuit board with a CPLD to make changes easy and have and IDE interface that a Compact Flash Card can plug into. It could include a boot sector and get the ball rolling from there so that I have some RSX/TSR extensions (or whatever Amstrad call them) to BASIC's disk operating system to change Directory etc to accomodate the much lager size of modern mass storage???
One problem I see straight away is that SMD CF connectors are 1/40 inch (0.635mm) and I don't know if I can do that with home made boards - also I just make single sided boards here. The CPLD will probably be 0.5mm for a larger chip or 0.8mm for a smaller chip.
I have ordered several different CF to 40 Pin IDE adapters and some CF cards and some PC type CF card readers.
Wish me luck lol.
What are you actually trying to accomplish? Because it sounds like you're reinventing the wheel.
The HxC (or a cheap Gotek flashed with the HxC firmware) devices do a spectacular job of emulating FDD, and TotO's X-MASS board provides a well-supported IDE interface. They're readily available and lots of us have them already.
Neither of these solutions will help be to be able to 'easily' transport data back and forth to the PC.
As far as I know the X-MASS storage card won't work by itself - you need a ROM expansion with the supporting code and on top of that - who has a PC with an IDE port - they're all SATA now. I would probably have already bought the X-MASS if I could only work out what I have to buy and if that will work or if I have to do other things as well. The website has product and price and absolutely no other useful information.
The HxC has a clumsy independent interface on a LCD screen as it's only emulated on the CPC and uses some file format that is not native to either device. There are a gazillion versions and I don't have the slightest clue which one works with the CPC.
A Compact Flash can be written to by a PC with a simple card reader using a native FAT32 file system that includes a Boot Sector. I can use the Boot Sector to load boot code into the CPC so that it supports FAT32. All I need to add are some CPC BASIC extensions like |CD or |CWD and use most of the original disk code with extensions for FAT32.
Compact Flash cards are huge compared to the memory (RAM/ROM) space of the CPC, I could have a complete copy of the boot ROM that is edited for FAT32 load into the CPC at boot time. ... because the original code has to boot mostly before I can add the needed RSX / TSR or whatever it is called on the Amstard.
Apart from this - if I am using a CPLD (like a small FPGA) then I can re-code it whenever I want to add things like a Serial Port or a Wi-Fi link or GPIO or a bidirectional parallel port or whatever I want.
And also - the ones you mentioned are expensive in my currency. I have CPLDs lying around on my desk and everything else except the Compact Flash card and 0.1" pin adapter (ordered). I also have plenty of SRAM / Large'ish 4Mb FLASH chips - Wi-Fi cards - USB to Serial bridges.
I need to be able to *quickly* shift data / code back and forth between the CPC6128 and a PC (Probably my laptop - right beside the CPC) because I want to write Assembly and the CPC environment has no Assembler or other tools like a sprite editor or tile map editor.
You should take a look at Albireo - USB/SD/Serial interface for CPC (http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/albireo-usbsdserial-interface-for-cpc)
Quote from: RobertM on 03:21, 15 February 16
Neither of these solutions will help be to be able to 'easily' transport data back and forth to the PC.
As far as I know the X-MASS storage card won't work by itself - you need a ROM expansion with the supporting code and on top of that - who has a PC with an IDE port - they're all SATA now. I would probably have already bought the X-MASS if I could only work out what I have to buy and if that will work or if I have to do other things as well. The website has product and price and absolutely no other useful information.
The HxC has a clumsy independent interface on a LCD screen as it's only emulated on the CPC and uses some file format that is not native to either device. There are a gazillion versions and I don't have the slightest clue which one works with the CPC.
A Compact Flash can be written to by a PC with a simple card reader using a native FAT32 file system that includes a Boot Sector. I can use the Boot Sector to load boot code into the CPC so that it supports FAT32. All I need to add are some CPC BASIC extensions like |CD or |CWD and use most of the original disk code with extensions for FAT32.
Compact Flash cards are huge compared to the memory (RAM/ROM) space of the CPC, I could have a complete copy of the boot ROM that is edited for FAT32 load into the CPC at boot time. ... because the original code has to boot mostly before I can add the needed RSX / TSR or whatever it is called on the Amstard.
Apart from this - if I am using a CPLD (like a small FPGA) then I can re-code it whenever I want to add things like a Serial Port or a Wi-Fi link or GPIO or a bidirectional parallel port or whatever I want.
And also - the ones you mentioned are expensive in my currency. I have CPLDs lying around on my desk and everything else except the Compact Flash card and 0.1" pin adapter (ordered). I also have plenty of SRAM / Large'ish 4Mb FLASH chips - Wi-Fi cards - USB to Serial bridges.
I need to be able to *quickly* shift data / code back and forth between the CPC6128 and a PC (Probably my laptop - right beside the CPC) because I want to write Assembly and the CPC environment has no Assembler or other tools like a sprite editor or tile map editor.
I'm afraid I agree that you are reinventing the wheel. Essentially you are replacing the boot code and some ROM code, which is equivalent to having an X-MEM. Next, I don't understand your complaint about the X-MASS using IDE and FAT, when you are proposing the same thing? The X-MASS works with some compact flash cards, and can probably be made to work with more, perhaps this would be a better place to invest time (talk to @TotO (http://www.cpcwiki.eu/forum/index.php?action=profile;u=290)). The new ACME-DOS ROM supports FAT on the X-MASS, as well as changing directory, running programs etc from a modified AMSDOS. Finally, there are loads of assemblers on the CPC itself (most recently orgams), though I think sprite editing is more difficult.
Also, if you just want to quickly test code, why not get a minibooster? You can use it to transfer files to the CPC (with bluetooth or USB), then reboot and run the program.
Pulkomandy's Albireo may be even closer to what you need, I think it can actually reset the CPC for you.
@RobertM (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1086): You will spend more time making this hardware than programming the CPC. ;)
If you want to make the hardware then really what you need is a board on the CPC which has ROM on it which the CPC boots into which listens.
The hardware connects to the expansion port on the CPC. The expansion board has USB on it and a microcontroller. CPC sees it as an i/o port. This would be simpler, taking the CPC's bus and writing direct is probably not a good thing to do, so avoid that.
Software on cpc is really simple. It reads a port to detect if there is any data yet. When there is it reads another to get that byte and then writes it into ram. The microcontroller does all the work of the USB. To the PC it looks like a USB memory stick. On the CPC, it recognises a files written and writes it direct into the CPCs ram.
Almost the fastest way to do it. It's one directional PC->CPC.
In this way you could fill the entire 64kb main ram.
But, when you want to give it to somebody else, then you need to write the loader because they don't have your hardware.
There are also much simpler solutions:
(http://pulkomandy.tk/drop/cpcsd.png)
http://pulkomandy.tk/drop/cpcsd.z80 (http://pulkomandy.tk/drop/cpcsd.z80)
It is slower, but it does not need replacing any ROM or whatever. And the code is not very complete (it only knows how to read sectors from the SD card so far).
Everybody can do it complex, only the genius keeps it simple. ;) :)
Quote from: PulkoMandy on 07:22, 16 February 16
There are also much simpler solutions:
(http://pulkomandy.tk/drop/cpcsd.png)
http://pulkomandy.tk/drop/cpcsd.z80 (http://pulkomandy.tk/drop/cpcsd.z80)
It is slower, but it does not need replacing any ROM or whatever. And the code is not very complete (it only knows how to read sectors from the SD card so far).
I like this - I like it a lot!
Simple!
One thing that bothers me tough is the need to load code from the floppy every time you want to use the SD or after every Reset.
I had a quick look at your code, I could see a CRC generator but the rest seems to be there.
Now that you have the low level you can load a bootloader and add the FAT(32 perhaps) support.
Just use the FAT's boot sector to put in the Z80 code for a boot loader then all your development can happen on a PC - you only want the simplest things happening from code on the actual CPC.
Even some of the code in the file can be put into the boot loader.
I would be happy to make this hardware here and help you develop the code for FAT support as I have to do that for my project anyway.
Quote from: Munchausen on 09:47, 15 February 16
I'm afraid I agree that you are reinventing the wheel. Essentially you are replacing the boot code and some ROM code, which is equivalent to having an X-MEM. Next, I don't understand your complaint about the X-MASS using IDE and FAT, when you are proposing the same thing? The X-MASS works with some compact flash cards, and can probably be made to work with more, perhaps this would be a better place to invest time (talk to @TotO (http://www.cpcwiki.eu/forum/index.php?action=profile;u=290)). The new ACME-DOS ROM supports FAT on the X-MASS, as well as changing directory, running programs etc from a modified AMSDOS. Finally, there are loads of assemblers on the CPC itself (most recently orgams), though I think sprite editing is more difficult.
Also, if you just want to quickly test code, why not get a minibooster? You can use it to transfer files to the CPC (with bluetooth or USB), then reboot and run the program.
Pulkomandy's Albireo may be even closer to what you need, I think it can actually reset the CPC for you.
Ok off the bat - I don't have any means whatsoever of getting any code into the CPC apart from the keyboard so most of the hardware solutions offered are actually useless to me.
Second - I want power on compatibility. Turn the machine on (or reset it) and it instantly has compatibility with the hardware.
As for the X-MEM / XMASS the real problem is I don't have a clue. They may be great but the website tells me nothing about how it works and I am not going to spend that much money on something that might end up in the bin because it doesn't work because because because I don't have a clue. I can't even work out what I would need to buy.
I didn't know the X-MASS was FAT32 - that's not written anywhere. As for being IDE - YES what I am doing is actually XTA or 8 bit ATA and you call it IDE because of the connector and pinout and that's *close enough* but I am using a storage medium that is NOT End Of Life. Modern card readers will read CF Cards for some time yet - the humble old 40 pin 0.1" IDE (AKA PATA) is all but buried.
The CF card has the the ease of transporting code as it can plug into a reader and the reader into a USB port on a PC.
The CF card also has the disadvantage of the 0.025" pin spacing which is going to test my ability with making PCBs.
The other current issue I have is that (apparently) a CF card's ATA mode is CMOS voltages so it can't work with my 3.3 Volt LVTTL *5 Volt tolerant* CPLDs. Actual *5 Volt* CPLDs are long gone.
I have to work out if it's true that the voltages to the CF Card actually have to be CMOS - there is a lot of confusion today between CMOS *technology* and CMOS *Voltages* - things like a 74HCT06 or the *HCT* series uses CMOS *technology* but maintains TTL Voltages and that is confusing a lot of EEs.
If it's *IS* an issue then I will investigate using 3.3 Volts for the CF card and that means I would have to send everything through the CPLD so I can use it as a level translator as well.
Anyway - I have to go find the spec for CF ATA mode.
T13 (http://www.t13.org) has the specifications for ATA, they may have the compact flash one too, although that may be a protocol rather than a specific ATA specification.
Quote from: RobertM on 04:50, 20 February 16
Second - I want power on compatibility. Turn the machine on (or reset it) and it instantly has compatibility with the hardware.
Easiest is to need the software in an expansion ROM (ROMDIS active if rom 0 is selected and A15 is set to 1) or a lower-rom replacement (ROMDIS permanently active, A15=A14=0). soft968 describes the structure for expansion rom.
It may be possible to take over the cpc's bus (BUSRQ) and force the data into ram. I'm not sure if it's been done before either, this would have to be a pure hardware solution.
Quote from: RobertM on 04:50, 20 February 16
The CF card has the the ease of transporting code as it can plug into a reader and the reader into a USB port on a PC.
The CF card also has the disadvantage of the 0.025" pin spacing which is going to test my ability with making PCBs.
The other current issue I have is that (apparently) a CF card's ATA mode is CMOS voltages so it can't work with my 3.3 Volt LVTTL *5 Volt tolerant* CPLDs. Actual *5 Volt* CPLDs are long gone.
I have to work out if it's true that the voltages to the CF Card actually have to be CMOS - there is a lot of confusion today between CMOS *technology* and CMOS *Voltages* - things like a 74HCT06 or the *HCT* series uses CMOS *technology* but maintains TTL Voltages and that is confusing a lot of EEs.
If it's *IS* an issue then I will investigate using 3.3 Volts for the CF card and that means I would have to send everything through the CPLD so I can use it as a level translator as well.
Anyway - I have to go find the spec for CF ATA mode.
If you only intend to use CF on your interface, just use the memory mapped mode, limited to the 8 1st byte (ie register file). This will give you direct 8 bit compatibility (in IDE mode you have to configure it). Regarding operating voltage, a CF must work at 3.3V and 5V, whatever the used mode is.
Some link to specification :
1.4 : ftp://ftp.wintel.fi/manuals/General/CompactFlash.pdf (ftp://ftp.wintel.fi/manuals/General/CompactFlash.pdf)
3.0 : http://rumkin.com/reference/aquapad/media/cfspc3_0.pdf (http://rumkin.com/reference/aquapad/media/cfspc3_0.pdf)
Quote from: PulkoMandy on 07:22, 16 February 16
There are also much simpler solutions:
http://pulkomandy.tk/drop/cpcsd.z80 (http://pulkomandy.tk/drop/cpcsd.z80)
It is slower, but it does not need replacing any ROM or whatever. And the code is not very complete (it only knows how to read sectors from the SD card so far).
OK I just soldered pin headers to the edge connectors on my CPC6128 and while I was there I added a +5V pin to the printer port.
I should have everything else here now to make your SD interface so I will give it a go.
I am still going to do the CF/IDE thing on the expansion bus but I like your project so much that I just have to give it a go.
Quote from: arnoldemu on 10:44, 20 February 16
It may be possible to take over the cpc's bus (BUSRQ) and force the data into ram. I'm not sure if it's been done before either, this would have to be a pure hardware solution.
This is not that easy, because the gate array will still access the VRAM (it ignores BUSRQ). So your device would have to time its memory accesses like the the z80.
Quote from: PulkoMandy on 07:22, 16 February 16
There are also much simpler solutions:
(http://pulkomandy.tk/drop/cpcsd.png)
http://pulkomandy.tk/drop/cpcsd.z80 (http://pulkomandy.tk/drop/cpcsd.z80)
It is slower, but it does not need replacing any ROM or whatever. And the code is not very complete (it only knows how to read sectors from the SD card so far).
Hi PulkoMandy,
I downloaded the zip file when you posted and had a quick read.
Today I found that I have a SD card module that did the 5v0 to 3v3 voltage translation so after I put pin headers onto the edge connectors it was really easy to connect with some push on connectors.
I haven't done anything except connect the SD reader to the printer port. I am just preparing at this stage.
The first issue that rose is that there are SD and SDHC formats. I found that Windows wants to use FAT (which I assume to be FAT16) to format 2GB or less SD cards and Windows uses FAT32 to format 4GB and above SDHC cards.
So the first question I have is - your code - is it written for SD or SDHC?
I did read the SD/SDHC spec a long time ago but I have never written code to interface either.
The other is not so much of a question but a suggestion that you may want to comment on or offer advice - all appreciated.
One of the sites that I am a member of has an open challenge - to view a retro web page on a retro computer so I have been considering a TCP/IP stack for the CPC. I stumbled on a shortcut that may be an answer to other problems as well.
There is a WiFi / SD card called the FLASH AIR made by Toshiba. It's a SD(HC) card that has an inbuilt micro controller running WiFi.
I think this would be a great solution to fix the isolation the old CPC feels in the modern world.
Any thoughts???
I have the Full specs for the FLASH Air here - the full specs for developers or coders that gives details right down to the micro controller code (from memory) I can post this if you want ... it's rare info.
Anyway - I have achieved all I wanted to achieve today and my beer is tasting really nice lol so I will chat tomorrow.
Also - thanks heaps for your help so far - you a legend!!!
Also - for the others that posted links to info - thanks heaps - especially for the CF info - it's hard to find unless you want to pay $100 to the CF organization.
I just ordered an eye-fi card as they will (apparently) connect to an existing wifi network as opposed to the Flash Air that sets itself up as a wifi access point. First option is much easier to manage from the PC end.
Hi,
As I mentionned I tested SD cards only with sector read/write code. I didn't plug a filesystem onto it.
The code supports both SD and SDHC cards. It detects which type is plugged and adjust the commands sent.
The only difference at the low level is that SD cards use byte addressing, while SDHC uses sector addressing.
You can then format the cards with any filesystem you want.
Well, here is where I am at so far. I'm feeling good about this and everyone's help has been excellent, thanks all.
It was even a long way to get here. The CPC was dead at the start.
Quote from: PulkoMandy on 07:22, 16 February 16
There are also much simpler solutions:
http://pulkomandy.tk/drop/cpcsd.z80 (http://pulkomandy.tk/drop/cpcsd.z80)
It is slower, but it does not need replacing any ROM or whatever. And the code is not very complete (it only knows how to read sectors from the SD card so far).
Which assembler did you use for this? All the onesI downloaded for Windows GUI aren't compatible.
I hope it was a GUI assembler and not DOS lol
vasm portable and retargetable assembler (http://sun.hasenbraten.de/vasm/)
(you need the "z80 oldstyle" version).
Executables for windows available somewhere here: AJ/freem's Neo-Geo Development Page (http://www.ajworld.net/neogeodev/)
A GUI assembler? Sorry but no, I'm not going to click click click for half an hour to convert my z80 sources into a DSK file. I need automated and scriptable tools.
Quote from: PulkoMandy on 07:12, 04 March 16
vasm portable and retargetable assembler (http://sun.hasenbraten.de/vasm/)
(you need the "z80 oldstyle" version).
Executables for windows available somewhere here: AJ/freem's Neo-Geo Development Page (http://www.ajworld.net/neogeodev/)
A GUI assembler? Sorry but no, I'm not going to click click click for half an hour to convert my z80 sources into a DSK file. I need automated and scriptable tools.
Yep that's definitely "old style" lol - now i have to remember how to write .bat files :( has been a while since I did that lol
Thanks for the links.
@RobertM (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1086)
How is the Project coming on ??
Ray
Quote from: Audronic on 07:00, 24 April 16
@RobertM (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1086)
How is the Project coming on ??
Ray
Hi Audronic (Ray),
It was all put aside because my son had come to visit. He has just left recently.
I had a computer crash so I am having to start over with a couple of things. I have three projects that were put aside. One is a TRS-80 clone with VGA output and the other is a custom retro computer (also VGA) and this one of course.
I was just now thinking that I should order a Disk On Module for this.
Here is were it was 'at' from memory -
At one stage I did see a "Hello World" on the CPC that was written to the CF card on the PC so I had something going. I was getting memory corruption and I was suspecting a PSU. I did go and buy another PSU though. I don't have a scope for debugging analogue issues.
Also, both CF cards I am using came from the same place in China so I should go and buy another just in case both are faulty.
I was at the point of re-viewing all stages of the build - pinouts - specs. I remember that one of the CPLDs that I use here has a pinout error on the data sheet so that may be an issue.
So I am going to start over. I have to set up the project first as it's been packed away.
I have a logic analyzer here now so perhaps I will set that up. I have the Altera and Xilinx platform running on my laptop now as well. The pore thing is only a duel core and struggles. The desktop was a quad core - I might try to fix it.
So - I should be back here this coming week hopefully - if I don't end up spending too much time on the other projects.
On another note I have been completely retro and using wire wrap for one project lol.
@RobertM
Ok. The Pause that refreshes (an Old Commercial) ?
The DOM's are very handy, small power requirements , compact , can plug into connectors (No Cables) , small size.
We ended up using some on a Low cost Ide drive for a Model 3/4 which worked well.
I have just come from the Trs-80 world Models 1/3/4/4p/System80 (Video Genie)
You were adding VGA to what model Trs-80.
Wire wrap os ok for prototypes.
Keep going
Ray
Quote from: Audronic on 07:48, 24 April 16
@RobertM
Ok. The Pause that refreshes (an Old Commercial) ?
The DOM's are very handy, small power requirements , compact , can plug into connectors (No Cables) , small size.
We ended up using some on a Low cost Ide drive for a Model 3/4 which worked well.
I have just come from the Trs-80 world Models 1/3/4/4p/System80 (Video Genie)
You were adding VGA to what model Trs-80.
Wire wrap os ok for prototypes.
Keep going
Ray
I will give a DoM a go but it will take time to get here.
I am not so much "adding" VGA to a TRS-80, instsead I am trying to clone a TRS-80 from the start but using VGA out instead of composite. I may also use a PS2 or USB keyboard. In fact I may build it into a PC keyboard.
At the moment I have just a sRAM 128kB, FLASH 128kB, a Z80 and a 240 LE CPLD.
I can't find decent CPLDs that will run with 5 Volts - all I have here are Xilinx XC9536XL, XC9572XL and Altera EPM240, EPM570 - very small CPLDs.
The TRS-80 is becoming a problem, I can't fit the character ROM into the CPLD so both the FLASH and the sRAM have to be accessible by both the CPU and the Video CPLD.
Anyway I will plot along.
If you are interested in my other project then many of them are here -
https://hackaday.io/Hacker404 (https://hackaday.io/Hacker404)
About the flash air - I have played a bit with the transcend wifi SD. It's the same thing as the others (runs linux on an embedded SoC), but it has been hacked so you can put your own code on it and if you crack it open you can solder on to the serial port pins. I've managed to compile the ppp kernel module for mine and run pppd over the serial port, so if you want something like that then it could be useful. (In my case I am using it to provide both storage and networking on a psion series 5mx - which can talk ppp over serial). Good luck getting on the hackaday connecting to hackaday with a retro computer thingy ;)
Quote from: Munchausen on 22:32, 24 April 16
About the flash air - <snip>
Good luck getting on the hackaday connecting to hackaday with a retro computer thingy ;)
I read reviews about 3 different ones before choosing the SanDisk Eye-Fi. One of them would onlt set up as an access point. The one I have connects to my existing Wi-Fi LAN.
I have full documents here somewhere on hacking on of them but I am not sure which one.
I am using the Eye-Fi for my camera at the moment and it woks well for that. I will get back yo the Amstrad-Wi-Fi thing after I have the CF memory sorted and when I do, I may use a different Wi-Fi / SD card or just a wireless card / module.
Quote from: RobertM on 22:55, 24 April 16
I read reviews about 3 different ones before choosing the SanDisk Eye-Fi. One of them would onlt set up as an access point. The one I have connects to my existing Wi-Fi LAN.
I don't know if you're a linux/unix user but if you are you can log in to the transcend using ssh (or serial) and configure the wireless however you want. I don't know how true this is of others, I know that some of them didn't appear to be very hackable, others use essentially the same hardware as the transcend. Some are not running linux at all.
If you want something that you can just talk to over serial and that has a built in TCP/IP stack, take a look at the ESP2866 modules.
I'm not very good at Linux except where it is running Apache.
What is the ssh port number (22)?
I can get the IP from the DHCP server and try to connect via a port number and see what happens.
Well the Disk On Module (DoM) arrived today. It was a long time coming.
I am starting over before I get carried away. I have tested the board for continuity and routing. Next I am going to check the VHDL constraints file.
I have already found one problem (some time ago) in that I mixed up the three port address signals (A0, A1, A2). I just fixed that in software for now.
I am hoping that the DoM wont have signal level issues. The CF card requires Voh of 4.7V (CMOS) and the noise margin is small.
Wish me luck lol. I will be back to it tomorrow.
Sigh, got distracted with other projects but I did do some google 'research'. Someone else tried exactly the same thing with exactly the same CPLD and it had problems for them. Even though they didn't specifically say it was the low noise margin, I am going to go with that being the problem for now.
So in theory the DoM should work with the LVTTL CPLD as it has TTL levels and not CMOS levels like the CF card. I will give it a go when I next set up that project on the desk.
The other person reverted to using 5 Volt XC95xx chips instead of 3v3 XC95xxXL but the former are obsolete now. Dam lol I just bought 100 XC9536XL's.
OK This was on the back burner for a long time.
I ordered a Disk On Module (DOM) and tried it and it worked first time.
I then made an adapter and tried a 2.5 inch PATA Hard Disk Drive and it works fine to. I had to use a second power supply though.
So the problem wasn't between the 3v3 CPLD and the level translator - the problem was between the level translator and the CF card. The drop in voltage on the 5 Volt line meant that the Voh from the level translator was lower (with noise) than the CMOS Vih of the CFCard (4v7 from memory).
Anyway now I need to worry about software.
I previously looked inside the CPC 6128 and it didn't look like I could fit a ZIF in there for the rom(s?).
Is there an existing TSR or RSX that extends the existing Amstrad Disk functions to an IDE device?
Is it better for me to mod a ROM or just add and external ROM?
My setup is the eight port addresses (I think 4 are used in 8 bit mode) that other older CPC-IDE hardware has. ie - It's a standard 8 bit IDE port like on 8 bit mode of the original IBM AT.
That might sound confusing ! and it is confusing ! There is an 8 bit AT mode that it NOT an 8 bit XT mode and that is what has been used by others and that is what is supported by CF cards! CF cards do NOT! support the 8 bit XT mode.
What I want is to add the RSX "|c" that extends the featured like RUN" load" cat |dir to the hard drive.