6502/TMS9918A computer on a backplane

Troy's HBC-56
A homebrew 8-bit computer with a backplane. Initially with a 6502 CPU card, but plans for other CPUs.

Public Chat
Similar projects worth following
A custom 8-bit backplane build initially running a 6502 CPU and includes a TMS9918 VDU.

After building a breadboard CPU and getting it to run Snake, I decided to do something different. I've always wanted to do a backplane build and also wanted to try my have at PCBs, so started with a custom backplane and custom proto cards for it.

Have done some coding for the Commander X16, so started out with a 6502-based CPU board. My childhood machine was a TI-99/4A, so wanted to try out a TMS9918 for video output.

So far, I've built up 5 cards on the proto boards.

  • Three-way clock module heavily inspired by James Sharman's design. 
  • 6502 CPU card
  • RAM/ROM card with 32KB of each.
  • LCD card (with support for graphics LCD)
  • TMS9918 display card

  • An emulator for my 6502 + TMS9918A build

    Troy Schrapel09/09/2021 at 03:39 0 comments

    I've started work on an emulator for my 6502-on-a-backplane with a TMS9918.

    I started out by writing a TMS9918A emulator in C. Created that in a separate repo since others might find it useful:

    Then I found existing code to emulate the 6502 and the AY-3-8910. Cobbled it together with rubber bands and sticky tape to produce a working emulator for my machine. I've updated the 6502 code to include instruction timing information which allows me to run the emulator at the same speed as my real machine (currently 4MHz).

    I've started building out an embedded debugger/disassembler for it which can be docked to the right-side of the display window. Making use of the label map files produced by ACME assembler, I can step through the code with (most) labels. Very handy.

    I've also added some other debugging regions to see the contents of RAM, the state of the TMS9918 registers and VRAM contents.

    All source code and schematics:

  • First Game!

    Troy Schrapel08/19/2021 at 04:30 0 comments

    Started work on an Invaders clone in 6502 assembly. Heavily inspired by the classic TI Invaders. Fitting since it uses the same VDP (TMS9918A).

    My 6502 is currently running at 4MHz which leaves plenty of time in the VSYNC blanking area to update the display. Responding the the sync interrupt of the TMS9918A.

    Running in the VDP's Graphics I mode. Everything on the screen except for the player ships and the bullets are text glyphs. The player ships and bullets are hardware sprites. The reason being the TMS9918A only supports 4 sprites on a scanline. Because of this, I can't use the hardware sprite collision detection, so will need to roll my own.  Currently only tile-level collisions are implemented, but I will get to adding pixel-level collisions soon.

    Work remaining:

    • Pixel-level collisions (mentioned above)
    • Aliens able to shoot back ;)
    • More invaders - level progression
    • The UFO bonus

    All source code for the game in its current state is available:

View all 2 project logs

Enjoy this project?



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