Close
0%
0%

HBC-56: 65C02 + TMS9918A on a backplane

HBC-56
A homebrew 8-bit computer with a backplane. Initially with a 65C02 CPU card, a TMS9918A VDP and dual AY-3-8910 audio.

Public Chat
Similar projects worth following
A custom 8-bit backplane build initially running a 65C02 CPU and includes a TMS9918A VDP.

Introduction

After building a breadboard CPU and getting it to run Snake, I decided to do something different. 

I'd done some coding for the Commander X16, so was interested in starting out with a 6502-based homebrew computer. My childhood machine was a TI-99/4A, so wanted to try out a TMS9918A for video output.

All source code, schematics and tools I've built for the project are available on GitHub: github.com/visrealm/hbc-56


Hardware

I've always wanted to do a backplane build and also wanted to try my have at PCBs, so started by designing a custom backplane and custom proto cards for it. The backplane consists of a 56-pin bus, hence the name: HBC-56 (HomeBrew Computer 56)

So far, I've built up 7 cards on the proto boards:

  • Three-way clock module
  • 65C02 CPU card
  • RAM/ROM card with 32KB of each
  • LCD card (with support for graphics LCD)
  • TMS9918A display card
  • Dual AY-3-8910 sound card
  • PS/2 keyboard and dual NES controller card

With help from @PCBWay Official , the cards are now being gradually replaced with custom PCB's such as this new 65C02 CPU card.


Software

I have written an initial Kernel to bootstrap the machine and help with interfacing with the various hardware modules. It is also possible to run the machine raw (without the kernel)

The project includes a number of example programs and games (Invaders, Breakout) to test out the various hardware modules. It also includes a port of EhBASIC and an Invaders clone (WIP).

All of the software is available on GitHub: github.com/visrealm/hbc-56


Emulator

To aid in software development, I have also build an Emulator for this machine. 

The emulator includes support for all of the hardware modules, including the TMS9918A, the LCD card (in character LCD or graphics LCD mode), input and audio. It also includes an integrated debugger which allows you to step through disassembled code with labels.

You can try the emulator in your browser here: https://visrealm.github.io/hbc-56/emulator/wasm

Full details on the emulator here: github.com/visrealm/hbc-56/emulator


Videos

tms9918a_vdp_v0_1_sch.pdf

TMS9918 card schematic

Adobe Portable Document Format - 174.45 kB - 12/08/2021 at 00:31

Preview
Download

ramrom_v0_1_sch.pdf

RAM/ROM card schematic

Adobe Portable Document Format - 149.01 kB - 12/08/2021 at 00:31

Preview
Download

lcd_v0_1_sch.pdf

LCD card schematic

Adobe Portable Document Format - 100.02 kB - 12/08/2021 at 00:31

Preview
Download

clock_v0_1_sch.pdf

Clock card schematic

Adobe Portable Document Format - 111.30 kB - 12/08/2021 at 00:31

Preview
Download

6502_v0_1_sch.pdf

6502 CPU card schematic

Adobe Portable Document Format - 116.27 kB - 12/08/2021 at 00:30

Preview
Download

View all 10 files

View all 17 project logs

Enjoy this project?

Share

Discussions

Pep3175 wrote 06/17/2022 at 18:43 point

What you have done is really impressive. Thank you for your help on Reddit with scrolling text. I think your work will help me out.

  Are you sure? yes | no

Troy Schrapel wrote 06/20/2022 at 02:15 point

Thanks. And, no problem.

  Are you sure? yes | no

bradley.bell wrote 09/30/2021 at 09:25 point

Looks nice, I'm starting something similar, and i may borrow some of these concepts

  Are you sure? yes | no

Troy Schrapel wrote 10/05/2021 at 03:55 point

Thanks, Bradley. All the best with your build.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates