ZX-Badaloc Reloaded
The very first Spartan-3E FPGA implementation of the ZX-Badaloc Spectrum clone
Loading Space Raiders on the Xilinx 3E board
The first implementation of the zx-badaloc clone on a fpga board was made on the Xilinx Spartan 3E evaluation board HW-SPAR3E-SK-UNI-G featuring an XC3S500E fpga (see pictures of my board here) while a smaller version was developed for a very inexpensive Avnet spartan 3A board with codename zx-badaloc nano.
Both projects has been merged into a new implementation using a Digilent board. However, due to some user requests, these pages are now back online as a reference. Here is described the hw-spare3e-sk-uni-g (larger) project.
A small modification is required to improve the 8-color VGA output, but the board can run the clone AS IT IS, just missing the brightness control on ZX-Spectrum screen. Once uploaded to the FPGA via Jtag or the usb cable provided in the kit, Z80 firmware (the system bootrom and Sinclair ROMs or whatever) can be flashed on the onboard nonvolatile memory using the Z80 itself, in conjunction with the ZX-Com program (see the quickstart instructions).
The main processor is the opencores T80.
The project also includes a PicoBlaze processor which handles the LCD display, the Encoder knob, some of the switch/buttons and leds. Z80 speed can be adjusted on-the-fly by turning the encoder knob from 42MHz down to one instruction every two seconds with single step capability, with address and opcodes displayed on the LCD.
A running point on the LED bar shows the real Z80 execution speed and completes a turn (8 steps) every 500.000 opcode fetch. The result is affected by Z80 clock speed, type of instructions being executed, speed of memory, speed of I/O devices.
Current version can now run ResiDOS by Garry Lancaster.
Download Page: Here you will find all the files needed to run the clone.
StartUp instructions: step by step explanation about how to run the project on your board
Implemented I/O register list, available to T80