Homebrew 6502 on a backplane (playing Invaders on a TMS9918 VDP) - Page 1
Forum section: electronics / projects

author: visrealm
author_rank: Contributor
timestamp: August 18, 2021, 01:06:02 am
content: Hi all,Has been a while since mylast project. I decided to tackle my first PCB-based project and have always wanted to do a backplane, so I did (both).Designed and ordered a custom backplane and a bunch of custom proto-cards for it, then got to work building out the cards.So far, I've built 6 cards:6502 CPUTriple-mode clockRAM/ROM (32KB of each)LCD card (supports standard character LCDs and Graphics LCDs)TMS9918A based video cardDual AY-3-8910 sound cardI also have a NES controller board (currently on a breadboard). Enough hardware to start a simple game, so started work on an Invaders clone (6502 assembly).I have all the code and most of the schematics ongithub.Created a project onHackaday.I do plan on creating a few more YT videos on the project (going into more detail) over the coming months.CheersTroy

author: Alex Eisenhut
author_rank: Super Contributor
timestamp: August 18, 2021, 01:47:52 am
content: That's so cool! Are you planning to add a RS-232 serial port? Or maybe a Commodore serial port so you can hook up to vintage floppy drives.

author: visrealm
author_rank: Contributor
timestamp: August 18, 2021, 01:53:55 am
content: Quote from: Alex Eisenhut on August 18, 2021, 01:47:52 amThanks!I am planning to add an RS-232 serial port. I have the components (except perhaps a suitable crystal), just need to build it. I haven't considered interfacing with original Commodore hardware (mainly because I don't have any)

author: Alex Eisenhut
author_rank: Super Contributor
timestamp: August 18, 2021, 02:26:17 am
content: Fair point, I just usually assume everyone has 8 1541s in their closet.How about a 9 pin joystick interface?How do you get your A/V chips, and how do you handle the vagaries of 6502 pinouts and opcodes?

author: visrealm
author_rank: Contributor
timestamp: August 18, 2021, 04:22:15 am
content: Quote from: Alex Eisenhut on August 18, 2021, 02:26:17 amQuote from: Alex Eisenhut on August 18, 2021, 02:26:17 amYeah, I could do that easy enough. Easier than the NES controllers I already have really.Quote from: Alex Eisenhut on August 18, 2021, 02:26:17 amMost of them I'm sourced from AliExpress. I've actually had reasonable luck with it overall. A couple of duds, but not bad. I'm only using base 6502 assembly (no extended 65C02 opcodes, etc.) so no issue there. The only difference in pinout I'm aware of is Pin 1 which can either be GND or NC. Easy to add a jumper for that.

author: Alex Eisenhut
author_rank: Super Contributor
timestamp: August 18, 2021, 02:19:55 pm
content: Here's a fun videoI think this would be a challenge, getting Commodore's BASIC to run on your configuration.Anyhow for the pinout the WDC version has an active output on pin 1. It causes some issues for VIC-20s and my aforementioned 8 1541s in my closet...I don't really know what a VPB is though.

author: visrealm
author_rank: Contributor
timestamp: August 18, 2021, 11:47:48 pm
content: Quote from: Alex Eisenhut on August 18, 2021, 02:19:55 pmRight. I remember now. I have it as NC in my build, but it's used when you've implemented a memory banking system to tell the system the CPU wants to access one of the vector tables (ie. in an interrupt handler) and ensure the memory is configured correctly for that purpose. I'm not doing memory banking at all (yet).

author: mon2
author_rank: Frequent Contributor
timestamp: August 20, 2021, 12:05:23 pm
content: Cool project. I was asked to work for Atari many many moons ago...learned so much about the 6502, hardware interfacing and assembly language (Rodnay Zaks book) in high school.http://www.acornatom.nl/sites/fpga/www.howell1964.freeserve.co.uk/parts/6502_cpu.htmVPB is Vector Pull (output) pin goes low when an interrupt vector is on the address bus.