ZX Spectrum inside CPLD

I found old ZX Spectrum clone made in Soviet Union in 90′s. It was my computer, I wrote several program on it and also, I wrote drivers for Espon printer on this hardware. This model has Soviet chip КР580ВВ55А (Intel i8255) and I used this port for LPT interface and some custom hardware.
I powered it and without results- old crappy Soviet chips are dead. At least 3 chips were bad and quality of PCB prevent me from full repair.
Soviet ZX Spectrum clone

After some analysis of this computer, I decided that it is very simple, and I can write it in Verilog hardware description language even with my amateur knowledge. Also, I have several trashed PCBs with Altera MAX chip (CPLD). And these board populated with small fast SRAM chip (32K only, but 12ns speed).
ZX Spectrum clone in CPLD VGA mode

Here is my first version of the ZX Spectrum clone in CPLDs. I’ve used two boards as I didn’t want to use external RAM chip. I added CPU and ROM only. And my main idea is to build computer from scratch by myself. Another goal- VGA connection, not TV.

This is not very informative schematics, all stuff is plain System Verilog:
Intel Altera Quaertus screenshot of ZX Spectrum clone

First run of the system. Basic is working and there is only small bug in the left side of the screen. It took about week to find it and it was completely in other place of code.
ZX basic is working- small bugs in leftmoust pixel

I think I made error in the interpretation of the BRIGHT command- I think that PAPER attribute is not affected with this bit.
All color modes and VGA monitor screen

My system is made from programmer’s point of view and I was not aware, that ZX slows down CPU when accessing video RAM- my system with 12ns RAM is completely transparent for CPU. Time arbiter is slotting CPU and VGA controller access to RAM in such way, that there is no any collision and WAIT cycles. I was wondering if this will not conflict with tape interface, but everything is OK. Old commercial software is loading and some programs are too fast.
Tape loading is OK

Tape interface is much better than in original speccy:
improved ZX spectrum tape interface
Using fast comparator and self zeroing circuit made tape loading much more stable than I remembered from old times.

About Administrator

I am owner of this site.
This entry was posted in Anything, FPGA, MCU. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>