Hi,
Over the past few months, when I get a little spare time, I've been working on producing a (rough) functional copy of the interface 1 ULA in VHDL. It's not intended to be a copy of the original but it should, ultimately, function in the same way. Currently it works well and loads files from an Oqtadrive. Write functionality and testing (both read and write) with a real microdrive is still to be done.
Code is very much rough and ready and can be found here: https://github.com/ZXQuirkafleeg/ZX-Int ... /README.md. The link contains a development PCB and VHDL code.
The design is built from the various sources on the microdrive (Spectrum Microdrive book, service manual, this forum) and uses the Octadrive to replace the microdrive. I've adopted the RC2014 hardware spectrum format I posted here a while back, as it's provides a flexible hardware development and reduces the stress on my single working spectrum 48K. The development board contains the CPLD, IF1 ROM, Oqtadrive and microdrive edge connector. There's also an IF1 net interface which is untested.
Should you need to, the development board can be connected to a real spectrum using a simple adapter PCB https://github.com/ZXQuirkafleeg/ZX-RC2014-Adapter.
Read only code fits into a EPM7128 and I think the full r/w design should fit into a EPM7160. I've adopted the same address decoding and clock as the original IF1 as it's ultimately intended to be a public design for a replacement ULA.
I've started to test the read-only design with a real microdrive - though my microdrive and handful of cartridges are not exactly the best. There's also some prototype microdrive write VHDL in the design but this is very much experimental.
I hope it's of some interest! If so, please feel free to post any feedback and I'll provide updates as the design matures.
Cheers,
Andy.
Interface 1 ULA functional copy - initial version
Re: Interface 1 ULA functional copy - initial version
This project looks very interesting. I guess it would be possible to adapt the pcb design to connect directly to a spectrum edge?
Re: Interface 1 ULA functional copy - initial version
Thanks - I want to get the write system working when I get a little time.
The PCB should straightforward to adapt to swap the 40 pin RC2014 connector to a spectrum edge connector. It may need some small layout changes to ensure the tracks can be routed in the space available.
The PCB also works with a 48K spectrum using a passive backplane adapter (https://github.com/ZXQuirkafleeg/ZX-RC2014-Adapter). There's nothing special about the adapter - it just changes the bus pinout/format. There's a pic on the gitbub site of the PCB and adapter connected to a standard spectrum.
The PCB should straightforward to adapt to swap the 40 pin RC2014 connector to a spectrum edge connector. It may need some small layout changes to ensure the tracks can be routed in the space available.
The PCB also works with a 48K spectrum using a passive backplane adapter (https://github.com/ZXQuirkafleeg/ZX-RC2014-Adapter). There's nothing special about the adapter - it just changes the bus pinout/format. There's a pic on the gitbub site of the PCB and adapter connected to a standard spectrum.