Getting Started

Pick the path that matches your background. Every path loops back to the others — you don’t have to commit to one.

I want to build with discrete logic

For the 74-series, PAL/GAL, and breadboard crowd — no FPGA required.

  1. Read the Architecture page to learn the common bus signals, timing, and memory map.
  2. Pick a CPU family you want to build around. The classics — 6502, Z80, 6809, 68000, 8088 — all map cleanly onto the bus.
  3. Prototype on a breadboard or perfboard. Start with CPU, RAM, and a simple output (LEDs or UART) before adding cards.
  4. Design your first card — address decoder, UART, or a simple peripheral. Plain 74-logic or a PAL/GAL for decode works fine.
  5. Share schematics, BOMs, and timing notes back to the community so others can build compatible cards.

I want to build with an FPGA

For builders who want to pack a lot onto one board with open-source tools.

  1. Install the open-source FPGA toolchain: Yosys, nextpnr, and OpenFPGALoader. Start at yosyshq.net.
  2. Get an affordable starter board. Suggested: Colorlight i5 (ECP5) or an ICE40-based board. See the Projects page.
  3. Read the Architecture page so your soft-core or peripheral can talk the common bus.
  4. Clone the reference implementation at github.com/benpayne/learn-fpga and synthesize a known-good config.
  5. Start modifying: drop in your own CPU, add a peripheral card, share the bitstream and RTL back to the community.

I want to write software

For C/C++ developers new to embedded or bare-metal work.

  1. Install the GCC retro back-end for your target CPU family (6502, Z80, 68k, 8086, or RISC-V). GCC and its ports cover most of the classic ISAs.
  2. Read Portable Drivers with GCC to understand how one driver can target many systems that speak the common bus.
  3. Pick a reference build (or your own) and get a “hello world” running over UART. This is the loop you’ll iterate in.
  4. Write a driver for a peripheral card you care about. Contribute it back so every system that has that card gets it for free.
  5. Port a retro app: try recompiling a FreeDOS or EmuTOS utility for your system.

Every Path Leads Home

All three audiences benefit from the same shared work. A card designed with plain 74-logic and a card synthesized into an FPGA can look identical to the software above them. A driver written for one system works on every other system that speaks the bus. Blog posts written for beginners save experts time. Pick a starting point, follow your thread, and when you look up you’ll find you’ve been building on everyone else’s work — and they’re building on yours.

Where to go next