Long Time Coming: Building the FAP Z80 Computer

Next article: Bus Board, CPU Board, and Freerunning FAP


I figured that I should start documenting my ongoing projects here from now on. I guess it might help other people with similar interests, or maybe just myself so I don’t lose the details in a few years time.

Over the years I worked on a number of projects involving embedded systems, interesting stuff like the Gamecube controller mod for 3DS, a shiny finder for 3DS Pokemon games, custom hardwares for TwitchPlaysPokemon channel, and a whole bunch of others that I might write about later. Despite all these though, something has always been lingering at the back of my head. I wanted to build an entire computer from scratch.

Back in the late 70s and early 80s, the microcomputer market was dominated by two 8-bit processors, Zilog Z80 and MOS Technology 6502. Almost all popular personal computers of the era had one of these two chips, 6502 was used in the likes of Apple I, Apple IIe, Commodore PET, Commodore VIC-20 and BBC Micro,  while Z80 was used in Osborne 1, Radio Shack TRS-80, ZX Spectrum, Commodore 128, along with countless others. Those chips were powerful enough to do some real work, but also simple enough so one can design a fully featured computer by him/herself. And that’s why a large number of retro computer projects on the internet uses one of these two. Another major factor of those retro builds is the nostalgia, as many had their very first computer with those processors. My first computer was a Pentium III, so I guess that’s out of the window for me.

Or is it?

It turned out that those two chips were so popular, they were used in tons of video game consoles as well, 6502 was used, among others, in Atari 2600, 5200, 7800, NES, and Atari Lynx, while Z80 ended up in ColecoVision, Sega Master System, Game Gear, Genesis, SNK Neo-Geo, Nintendo GameBoy, Gameboy Color, Gameboy Advance, as well as classic arcade game machines like Pac-Man, Frogger and other Namco and Sega arcade systems. So if you like video games, you have 6502 and Z80 to thank for. I do, and that’s why I’m planning to build a retro machine out of one of these chips. Of course general propose computers are not exactly the same as game consoles. What I’m planning is to build a computer first, and then try to build a console clone once I got up to speed with designing retro computers.

Now comes the part of picking between the two, I choose Z80 because it has more registers, somewhat more powerful, and seen by some to be more of a “proper” microprocessor since 6502 was the “cheap alternative” back in the day. Actually I wouldn’t know since I never worked on a 6502 anyway. The real reason though, is that Z80 was used in Nintendo Gameboy lines, and that’s the one I grew up with. You see, it’s still all about the nostalgia.

As for the PC,  it’ll have the Z80, some RAM and ROM, a video card, and some kind of input like a joystick or keyboard. I might add or delete stuff along the way but I’ll start simple in the beginning. If you’re planning to build your own Z80 computer, one of the must-reads is the appropriately named Build Your Own Z80 Computer by Steve Ciarcia, in this 1981 book he explains step-by-step the process of building a Z80 computer from scratch, starting from the power supply, to adding RAM and ROM, and to advanced stuff like CRT terminal and tape drive interface. He calls his computer ZAP, which stands for Z80 Application Processor. In the similarly thoughtful and serious vein I’m going to call mine FAP, which is FPGA-Assisted Processor. Where is the FPGA you ask? Most likely for the video card. But it’s going to be a while for me to get there, so don’t worry about it right now.

One thing you’ll realize is there are going to be a lot of planning to do before you even start building anything, now that we have picked the processor and the rather excellent name, next is to decide the form factor of my FAP. At this point it’s impossible for me to not mention the biggest inspiration that made me, and probably a lot others, to pursue my project, Quinn Dunki’s Veronica computer. Running the Blondihacks blog, she documents a number of her projects in detail, stuff like repairing a pinball machine, fixing and hacking an Apple IIc computer, and most importantly in our case, the Veronica. The Veronica is a 6502-based computer she built from scratch just like what I about to do, she started from just freerunning the CPU, and ended up adding RAM, ROM, designing the GPU with VGA output, modifying a retro radio case to put it in, adding the gamepad input and USB keyboard interface, over the journey of 3 years.  Quinn chose not to build a Single Board Computer, instead going for a bused design, this way everything is modular, and it’s trivial to upgrade or add functions, just plug a new card in. I fully agree with this design direction, and FAP will be using the backplane design too, although there will be a few different details regarding the implementations which we shall see in later posts.

For now I think this introductory post is long enough, we’ll get into the meat of FAP starting from the next article where I’ll actually start building stuff.

Next article: Bus Board, CPU Board, and Freerunning FAP


6 thoughts on “Long Time Coming: Building the FAP Z80 Computer”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s