-
Five new custom PCBs
05/02/2022 at 06:44 • 0 commentsA new batch of five different PCBs just arrived for my HBC-56 homebrew computer courtesy of PCBWay. They look fantastic. Time to start assembling.
The five new designs (front and back from left to right)
- RAM/ROM with shadow RAM
- 65C02 / VIA / SPI / Interrupt controller
- TMS9918A VDP
- Dual AY-3-8910 audio
- PS/2 keyboard + dual NES controller
TMS9918A VDP card new versus old
Close-up view of the dual AY-3-8910 sound card.
#hbc56 #homebrew #pcbway
-
65C02 / TMS9918A debugger improvements
03/30/2022 at 04:39 • 0 commentsMore tinkering on the emulator for my 65C02 / TMS9918A homebrew build has resulting in many improvements to the debugger, including being able to step through the source assembly code, set and clear breakpoints, break on interrupts, examine variables and constants, RAM and VRAM, click to labels, etc.
You can try it online here: https://visrealm.github.io/hbc-56/emulator/wasm/?rom=breakout
-
Web-based emulator available
03/02/2022 at 02:47 • 0 commentsYou can now run BASIC, Invaders or my Breakout clone in your browser. All 6502 / TMS9918A code is available too. A couple of limitations:
- Requires a keyboard
- No audio in the browser emulator
Try it here: Breakout on the HBC-56
-
Breakout clone for my 6502 / TMS9918A
02/28/2022 at 07:34 • 0 commentsI've been working on some TMS9918A content for YT and in the process, threw together a Breakout clone for my HBC-56.
As always, all source code is available: https://github.com/visrealm/hbc-56
-
Memory monitor can load games
02/02/2022 at 23:43 • 0 commentsI've added a MC68B50 UART to my HBC-56 and have started developing a memory monitor to run on it. Since the memory monitor can write to memory using hex strings, I've modified ACME Assembler to output in Intel HEX format and transform the output to memory monitor commands.
The result? Can now load programs (games) over serial.
I've also added UART support to my emulator and can connect to both the emulator and the real machine using PuTTY.
-
PS/2 Keyboard and dual NES controller card
01/15/2022 at 10:56 • 0 commentsI've finally gotten around to building out a card to hold my PS/2 keyboard controller and dual NES controller ports. This circuit has been hanging off the front of my build on breadboards for months!
-
BASIC for my 6502
12/12/2021 at 00:24 • 0 commentsSo, now I have a keyboard, I decided to do something to make use of it. BASIC seems appropriate, so I "ported" EhBASIC to my system, including TMS9918, character LCD and 128x64 graphics LCD drivers.
In doing so, I discovered a bug in my emulator. The BIT opcode in the 6502 library I was using didn't set the processor flags correctly. So, I tracked that down and fixed it.
All the code is available and you can follow along using my HBC-56 emulator (also in the GitHub repo).
If you've been thinking about BASIC for your 6502 build, it's not too hard to do.
-
A spin 'round my 6502 backplane and various cards.
12/05/2021 at 04:29 • 0 commentsI've had a number of people asking for a better look at the backplane and cards. Here's a quick spin around Troy's HBC-56. A quick tour...
-
Added a Keyboard to my 6502 using a PIC MCU
11/29/2021 at 12:32 • 0 commentsMy build has had input in the form of a NES controller for a while now, but that's a bit limiting. Time for a keyboard.
After watching Ben Eater's PS/2 videos, I decided to add support for PS/2, but to expand on my skillset, I decided to implement the PS/2 controller using a PIC microcontroller. Something I've never user before.
I ordered a bunch of PIC16F627A's from AliExpress and got to work. There was a bit of a learning curve for PIC assembly, but once I got my head around the instruction set, it was fairly straight-forward.
My keyboard controller contains a 16 byte circular buffer and outputs the head of the queue in parallel using an interrupt pin.
I cover the process in some detail in the above video.
More improvements are planned to the keyboard controller and the rest of the build.
Stay tuned :)
-
An emulator for my 6502 + TMS9918A build
09/09/2021 at 03:39 • 0 commentsI'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: https://github.com/visrealm/vrEmuTms9918
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: https://github.com/visrealm/hbc-56