This is simple application for the FDC765A chip (Floppy Disk Controller), also known as Intel 8272.
YAMOD.FDC765A can work in 2 configurations - ZX Spectrum +3 compatibility and YABUS.ISA compatibility.
In ZX Spectrum +3 compatibility the floppy disk controller is seen in ports #2FFD (main status) and #3FFD (commands and data). Address lines A8..A11 are not decoded. Also port #1FFD is decoded where bit 3 controls the FDD motor (1 means on). The FDC clock is 4MHz (this gives 250kbps transfer). Optionally, selecting drives 2 and 3 can switch the clock to 8MHz (500kbps transfer), what gives possibility to read and write HD floppy disks (usually called 1.44MB).
In YABUS.ISA compatibility the floppy disk controller is seen in ports #74 (main status) and #75 (commands and data). Address lines A8..A15 are not decoded. Beside, port #72 is decoded where bit 0 select drive and bits 4 and 5 controls the FDD motors (in PC AT compatibile way). Also port #77 is decoded, where bit 1 selects FDC clock (1 for 4MHz/250kbps, 0 for 8MHz/500kbps). Bit 7 in port #77 returns disk drive status (returns information, if disk was changed).
YAMOD.FDC765A can be build using an integrated PC AT floppy disk controller, in that case the ZX Spectrum +3 compatibility is not available.
YAMOD.FDC765A can be used also in Amstrad CPC. The basic version (with 765A/8272 chip) can be external floppy interface for CPC 464, while the integrated PC AT FDC can work in CPCISA compatibility.
The idea - disk interface for ZX Spectrum +2A
The ZX Spectrum +2A are similar to ZX Spectrum +3, but have tape recorder in place of floppy drive. Also, FDC circuit is not present, however, due to the same ULA chip, there are decoding and /MOTOR ON signals available. So it looks easy to add the FDC.
The first problem - data separator
The FDC765A need external circuit with PLL (phase locked loop), called data separator. In ZX+3 an integrated SED9420 is udsed (in Amstrad CPC - the FDC9216). So, what to do?
The data separator can be also build from TTL logic. I found one solution on an old FDC ISA card, but uses a lot of logic chips. Another one was for the Elwro 523... But the one on Peter Simandl's page looks the best.
The second problem - 74S188 PROM
The data separator is build from 3 TTL chips (74LS74, 74LS174, 74S188). But the last is a PROM, that must be programmed before use. And, beside is hard to get.
I found another solution. After analyse the PROM contents I found it can be easy replaced with a 74LS157 multiplexer and 74LS83 adder. (In case of problems, the adder can be replaced with 4 XOR gates and 4 AND gates.) So we have one 4 TTL chips (5 in the worst case) without need to program a rare part.
Links to other pages
- Low level floppy and hard disk drivers for Z80.
- To +3
- Disk interface for +2A/+2B that makes them compatibile to +3.
- Elwro 800 Junior
- Elwro 800 Junior - ZX Spectrum clone produced in Poland. Also works under CP/M 2.2 (CP/J) with access to disk drive via a network.