Sound Card 2.0: Breadboard Build (running post)
Updated: Apr 21, 2022
I am working on the breadboard build of my Sound Card 2.0. I'll use this post for updates on my progress.
I figure the breadboard build is going to take six to seven BB830 breadboards. I am going to start the build on my proto add-in card which has two onboard BB830's. This add-in card will give me easy access to the main system bus. I am hoping to get the core processor circuit on the add-in card, and then place all the VIAs, PSGs, and other miscellaneous items on an additional set of breadboards.
For the processor, I've decided to try a 65816, running in native mode, so that I can utilize both 8-bit and 16-bit registers. I am not going to use an address latch circuit, as I won't need A16-A23 -- I will only use bank zero.
April 16, 2022
So, step one is to build a 65816 system on an add-in card -- a card that will be plugged into my main 65816 system (a 65816 system within a 65816 system 😁). Here's what I have so far:
Above, I have started to connect the 65816 to RAM and ROM. Next, I need to connect the address decode logic (coming from the far right GAL22V10D).
I will use an independent oscillator for now, but possibly in the future I can leverage the main system clock to drive this circuit. I'll have to see at what speed I can run this circuit.
After the decode logic, I will connect the VIA (second IC from the right) and an LCD. Following that, I plan to connect the left two chips, allowing my primary 65816 to communicate with the add-in card 65816, through the dual-port memory. I'll see if I can get commands flowing from the main processor to the add-in card processor, and output results on the LCD. If I can get that far, I can then start connecting additional VIAs and programmable sound generators.
April 17, 2022
The sound card's 65816 with ROM, RAM, and address decode logic are now running. Note that the write and read for $7000 do not work at the moment. This is to be expected, as I don't have the dual-port RAM connected yet (nor do I have the Arduino reading the OEB line for the dual-port RAM).
Below, the sound card can now read from and write to the dual-port SRAM (right side of the SRAM). VIA1 output is also working.
April 19, 2022
The 65816 on the main system is now communicating with the sound card's 65816, through the dual-port SRAM. I have posted some details about my approach to this inter-65816 communication at Sound Card 2.0 for 65816 PC.
Next: I will add support for the system processor to trigger reading of SRAM by the sound card with an interrupt request, rather than the polling loop in the video above. Then, it's time to connect two more VIAs and six PSGs. Glad I have a couple of large spools of wire! :)
The sound card breadboard is now running entirely off of the main system. To support this, I dropped the system clock down to 10 MHz. When I eventually get the PCB version of the sound card, I will have two oscillators on it -- one for the co-processor core and one for the PSGs, leaving the 65816 primary system's clock independent.
I have completed enough testing to satisfy my primary concerns with the design. I've decided to forego connecting the remaining VIAs, PSGs and ROM, since this is essentially the same design as my previous sound card for my 6502 system. Given that, I have finalized the PCB design and ordered a set for testing. I'm taking a little risk with this approach, but I don't have the energy to connect nine more large ICs on breadboards right now, lol.