Hello, has anyone here ever had a similar problem? I'm basically trying to use my CF card interface board that used to work with another memory card, which unfortunately got damaged (my fault). Now I only have this one card, which seems to require more accurate timing to function properly.
I've already tried two different circuits: one using capacitors (the first tested in the video) and another using flip-flops to introduce proper delays (the second shown in the video). With the first circuit, the card passes memory tests and can be formatted, but it doesn't even boot into CP/M. With the second one, it does all that and even boots into CP/M, but I can't interact with the system after that.
It used to work perfectly with my other CF card. Fortunately, I have a backup image of it, with several programs and even Colecovision games already installed. However, I can't use that image on the new card because the old one was 256MB and this one is only 128MB — so I'm having to reinstall CP/M from scratch.
What matters most to me is understanding what's causing the issue and making my project compatible with more CF cards. I checked with an oscilloscope, and in both circuits (capacitor-based and flip-flop based), the DL_RD and DL_WR signals are coming significantly after the CF_CS signal, which I believe meets the CF timing requirements. Still, it doesn't work properly.
If anyone wants to know more about that like full schamtics and another stuff: https://hackaday.io/project/195954-the-homebrew-handwired-z80-computer-h2z80








Hi Bill, thanks again for your help earlier. I wanted to share an update and ask for your input on this new issue I’m facing.
The system used to work perfectly, including CP/M 2.2 B running from the CF card. I had a working image with several programs installed, and I even saved a backup. Now, even using that same image (or doing a fresh install), CP/M freezes right after it boots and I press any key. The CF card LED stays on, and the system becomes unresponsive.
I'm using Small Computer Monitor as the ROM monitor and loading CP/M from the CF card (CF at 0x10h, SIO at 0x80h). I made some changes to the delay logic, and the CF interface seems more stable now — no errors during the monitor stage.
I’ll attach logic analyzer screenshots showing what’s happening on the bus:
Before loading CP/M (system stable) - first image
Right after loading CP/M (still OK) - seccond image
Right after pressing a key and the system freezes (INT goes active and stays stuck) - third image
Could you help me understand what might be going wrong now? I really want to get this working again with CF properly integrated. Thanks in advance.




--
You received this message because you are subscribed to a topic in the Google Groups "retro-comp" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/retro-comp/RNnA3mhrXnc/unsubscribe.
To unsubscribe from this group and all its topics, send an email to retro-comp+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/retro-comp/a281c42a-cd1c-4e12-8b06-299797d0ca96n%40googlegroups.com.
This 256MB CF arrived yesterday, it’s identical to the old one I had (that burned). This new CF tolerates imperfect RD and WR timings better (even though I already fixed the circuit to improve access timings, and now even more sensitive CFs are working too).
With 256MB I can restore my backup that I saved last year on my Windows PC, with all my CP/M programs and files.
I'm not installing CP/M through Windows — I format the CF using the Small Computer Monitor with its own format tool, then I run the PutSys program to install CP/M B, just like I did a year ago.
The backup I have on Windows is just a .bin file exactly the same size as the CF card. Windows can't read it, but I can restore it perfectly anytime using a disk recovery tool (ImageUSB), which copies the disk byte-by-byte without changing anything.


