How are you getting along with CF card interface.?
would be good idea to make a spreedsheet or text file of all the connections.
You have the CF card, CF card adapter, the breakout board & Z80 to deal with.
For quick SD Card interface,
in your position I would want a working CP/M system if at all possible first.
Z80, You need software & hardware. For Z80 you would need to find the software or translate from some existing software that works with a microcontroller interface
You would need to add hardware to Z80, test it and get software working. .
Right now you are playing shuffle and have to move Code to Z80.
You should look and understand each option grant has to get code to Z80.
No CF card changes this some. If your rom is larger then grants you have more options.
Option #1A
A 4$, 4ICs, Z80 homemade computer on breadboard
https://www.eevblog.com/forum/projects/a-4$-4ics-z80-homemade-computer-on-breadboard/You might think of this as a Z80 development system
He is using a MEGA32A, with some Adriano programming. The mega32a is 40-pins Cost and breadboard plays a large part of choice.
Something with even more pins could be better.
Note this is using I2S memory for drives. SPI pins are used and have not looked how hard it would be to change so SD Card possible.
Option #1B
A Arduino Mega 2560 would be nice due to more pins, but real at $45.95 but I would not pay that price. This is used in a some/lot of 3D printers. It is ok for 3d printer but not great. Arduino Mega 2560 Clones are much cheaper and have some parts used above on a PCB. Would need some Arduino side software changes to use this.
The extra pins should allow I2C, SPI or SDcard use as drives.
1A & 1B dos not prevent you from adding more hardware on Z80 side.
If memory serves Grant's basic exists for this.
You could have Arduino Mega boot Z80 and with software changes add Z80 hardware
Or with some software changes you could have Z80 boot from rom and then start using Arduino Mega for its IO.
Option 2:
You could treat a micro-controller as a disk drive controller.
You could then use existing software on micro-controller. .You could have Z80 using raw data space of SD card or a file per drive on SD Card.
At the simple level the Z80 is going to ask to read or write block # on drive x
I would think a quick simple version of SCSI interface on Z80 connected to a microcontroller that has a SPI interface would be a good starting point.
You would then have hardware that adapts to differences in speed of CPU's and hardware based control of data flow speed between the two systems.
This would let you use a lot of the existing software for SPI Interface and SD Card on microcontroller.
This one interface on Z80 would let you add hardware & software on micro controller side with just software changes on Z80. Full SCSI interface on your two Z80 & micro controller and you have a network.
An operating system like CP/M just wants a drive to look like a collection of blocks. CP/M programs work with blocks of 128 bytes. When this does not match drive block, a part of CP/M will adapt to put many 128 byte blocks into a drive block. Small block size = smaller disk and less memory CP/M needs as a drive buffer to do this. The great thing about CP/M 3 and turbodos is that it can swap in banks of memory to hold these and other buffers.
When you have a working CP/M system
You can do all parts of software development on Z80. While this can be slower, it could still be faster then moving code to Z80. I think some of the Assemblers are even better on z80.
A lot of possible options where a micro-controller can help on Z80 side.