I am writing a Spectrum emulator, however I am finding it difficult to find official or reliable information about the ULA, its functioning and its pins.

Are there official sources documenting its inner workings?

  • There isn't much documentation about it. I'm not a spectrum guy, but from what I can tell, it's a completely custom ASIC, and isn't documented very well. Also, Google is your friend, my friend – Shahe Ansar Apr 19 '16 at 20:50
  • 2
    Downvoter, please explain why you don't like, it's better to discuss in these early times. – Sklivvz Apr 19 '16 at 20:59
  • @ShaheAnsar: is actually the opposite: it's not a completely custom ASIC, but an uncommited logic array, and it's documented pretty well. – mcleod_ideafix Apr 19 '16 at 23:14
  • @mcleod_ideafix Interesting... – Shahe Ansar Apr 21 '16 at 21:44
  • What about the Zx Spectrum Complete Disassembly? I still have my copy :) – Fandango68 Apr 24 '17 at 6:47

Buy, and study carefully, The ZX Spectrum ULA. The book is the result of opening the chip and reverse-engineering it down to the transistor level.

  • Ah interesting. I was not sure it was a good resource! – Sklivvz Apr 19 '16 at 21:26
  • 4
    It's actually the best source :) – mcleod_ideafix Apr 19 '16 at 23:15
  • 3
    Bit late to the join-in here but I found this book absolutely amazing - it rekindled an interest in the Spectrum and got me thinking about hardware. It's incredibly technical in places, and fascinating. Can't recommend it enough. – robsoft Jul 28 '16 at 20:13
  • Wasn't Chris Smith the author, also the programmer of Manic Miner? – Fandango68 Apr 24 '17 at 6:46
  • No, that was Matt Smith. – Tommy Sep 20 '17 at 12:46

For your reference, this is the datapath I inferred after reading Chris book. It's the ULA datapath I've used in the ZX-UNO clone. Coloured blocks will help you differentiate what parts are from the original ULA, Timex additions, and ULAplus additions.

Datapath Flow Chart

  • This is great, but not an answer by itself. Is there a website that presents this and other details? – Nick Westgate Nov 16 '16 at 21:04
  • Based on this datapath, I wrote a complete Verilog description of the ULA. It is available at the repository of the ZX-UNO project ( www.zxuno.com ) . An earlier version of it is also available at Opencores ( opencores.org/project,zx_ula ) . All in all, the definitive reference is the above mentioned book by Chris Smith. – mcleod_ideafix Nov 17 '16 at 10:26

Based on the Book title from the accepted answer I found this:

Which leads to this repository:

which is directly accessible without the need to buy or register anything

Look for ula.v file which is code representing ULA chip by FPGA.

  • 1
    That's my project, the one I mentioned in the comment to my answer. – mcleod_ideafix Sep 24 '17 at 11:37
  • @mcleod_ideafix :) heh did not realize that. Should I delete this? – Spektre Sep 24 '17 at 12:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.