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
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.
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
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