Author Topic: Homebrew 6502 on a backplane (playing Invaders on a TMS9918 VDP)  (Read 1859 times)

0 Members and 1 Guest are viewing this topic.

Offline visrealmTopic starter

  • Contributor
  • Posts: 29
  • Country: au
  • Aussie software guy and electronics enthusiast
    • GitHub
Hi all,

Has been a while since my last 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 CPU
  • Triple-mode clock
  • RAM/ROM (32KB of each)
  • LCD card (supports standard character LCDs and Graphics LCDs)
  • TMS9918A based video card
  • Dual AY-3-8910 sound card

I 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 on github.

Created a project on Hackaday.

I do plan on creating a few more YT videos on the project (going into more detail) over the coming months.

Cheers
Troy
« Last Edit: August 19, 2021, 08:21:54 am by visrealm »
 
The following users thanked this post: xrunner, ebclr

Offline Alex Eisenhut

  • Super Contributor
  • ***
  • Posts: 3552
  • Country: ca
  • Place text here.
Re: Homebrew 6502 on a backplane (playing Invaders)
« Reply #1 on: August 18, 2021, 01:47:52 am »
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.
Hoarder of 8-bit Commodore relics and 1960s Tektronix 500-series stuff. Unconventional interior decorator.
 

Offline visrealmTopic starter

  • Contributor
  • Posts: 29
  • Country: au
  • Aussie software guy and electronics enthusiast
    • GitHub
Re: Homebrew 6502 on a backplane (playing Invaders)
« Reply #2 on: August 18, 2021, 01:53:55 am »
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.

Thanks!

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 :D)
 

Offline Alex Eisenhut

  • Super Contributor
  • ***
  • Posts: 3552
  • Country: ca
  • Place text here.
Re: Homebrew 6502 on a backplane (playing Invaders)
« Reply #3 on: August 18, 2021, 02:26:17 am »
Fair point, I just usually assume everyone has 8 1541s in their closet.  :-DD

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?
Hoarder of 8-bit Commodore relics and 1960s Tektronix 500-series stuff. Unconventional interior decorator.
 

Offline visrealmTopic starter

  • Contributor
  • Posts: 29
  • Country: au
  • Aussie software guy and electronics enthusiast
    • GitHub
Re: Homebrew 6502 on a backplane (playing Invaders)
« Reply #4 on: August 18, 2021, 04:22:15 am »
Fair point, I just usually assume everyone has 8 1541s in their closet.  :-DD

 :-DD

How about a 9 pin joystick interface?

Yeah, I could do that easy enough. Easier than the NES controllers I already have really.

How do you get your A/V chips, and how do you handle the vagaries of 6502 pinouts and opcodes?

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

Offline Alex Eisenhut

  • Super Contributor
  • ***
  • Posts: 3552
  • Country: ca
  • Place text here.
Re: Homebrew 6502 on a backplane (playing Invaders)
« Reply #5 on: August 18, 2021, 02:19:55 pm »
Here's a fun video



I think this would be a challenge, getting Commodore's BASIC to run on your configuration. :box:

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.
Hoarder of 8-bit Commodore relics and 1960s Tektronix 500-series stuff. Unconventional interior decorator.
 

Offline visrealmTopic starter

  • Contributor
  • Posts: 29
  • Country: au
  • Aussie software guy and electronics enthusiast
    • GitHub
Re: Homebrew 6502 on a backplane (playing Invaders)
« Reply #6 on: August 18, 2021, 11:47:48 pm »
I don't really know what a VPB is though.

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

Offline mon2

  • Frequent Contributor
  • **
  • Posts: 519
  • Country: ca
Re: Homebrew 6502 on a backplane (playing Invaders on a TMS9918 VDP)
« Reply #7 on: August 20, 2021, 12:05:23 pm »
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.htm

VPB is Vector Pull (output) pin goes low when an interrupt vector is on the address bus.


 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf