Building FPGABee Version 1

The first version FPGABee delivered a mostly working clone of a ROM based Microbee - similar to the PC85B model.

FPGABee v1

Although the original intention was to take it further, I decided to back track and take a different approach with version 2 so some of this information is now obsolete (most notably the console mode and PCU).

  • Runs on a Digilent Nexys3 FPGA Development Board
  • Uses OpenCore T80 for Z80 CPU
  • 32K RAM, 28K ROM, 4K Video RAM/Character ROM\
  • Partly functional 6545 CRTC implementation - cursor, keyboard, video generation
  • Connects to VGA monitor at 640x480 resolution with the Microbee output (512x256) displayed centered
  • Uses PC keyboard with natural character mapping
  • Programmable Character Graphics (PCG)
  • Speaker
  • Cassette Load (Save not implemented yet) from FAT32 formatted SD card
  • Console Mode for control over peripheral functions

Part 1 - CPU Environment

Getting started with FPGAs and VHDL and just enough ciruitry to boot a Z80 processor and display a blinking LED!

Part 2 - Video Controller

Implementing a VGA video controller and mapping to memory layout matching that of a Microbee.

Part 3 - Implementing the 6545 CRTC Chip and Cursor

The 6545 is the heart of the Microbee's video controller. This article looks at how it's implemented in FPGABee, including cursor logic.

Part 4 - Keyboard

Covers connecting to a PS-2 Keyboard and mapping received key events to Microbee key-switches and then making them visible to the Z-80 through the CRTC.

Part 5 - Video Revisited

Debugging PCG graphics issues and getting a game I wrote in the 80's working on FPGABee!

Part 6 - Sound

Connecting a speaker to the FPGA and getting Microbee sounds out of it.

Part 7 - Peripheral Control Unit

Implementing a virtual cassette interface and the Peripheral Control Unit as a user-interface to control it.