65816 System - June 2022 General Update


In January of this year, I decided to try to build a new system based on the 65816 processor. It has now been almost five months, and I thought I would share the current state of the system.


65816 PC Build Update (April 2022)


While it's not "done," and likely never will be, it has come a long way. I have been learning a great deal through this project!


The primary components of the system include:

  • 65816 motherboard

  • USB mouse add-in card

  • Video add-in card

  • Sound add-in card

  • Joystick / controller add-in card


65816 Motherboard

  • ATX form factor

  • W65C816S6TPG-14 processor, running at 14.16 MHz

  • 32 KB basic RAM

  • 480 KB flash ROM

  • 512 KB extended RAM

  • PS/2 keyboard

  • Onboard SPI support

  • Seven expansion slots (using ISA connectors but not using ISA protocol)

  • 480x320 debug screen

  • Address decode logic with programmable logic device (PLD).

  • More details



USB Mouse Add-in Card

  • Arduino Mega 2560 with USB host shield

  • Interrupt-based

  • USB data sent to system through an onboard W65C22S6TPC-14 versatile interface adapter (VIA)

  • More details



Video Add-in Card

  • 320x240 resolution, with one byte per pixel for color (RRRGGGBB)

  • Card drives sync with a pair of PLDs.

  • Daughter cards for video memory. 128 KB of dual-port static RAM (expandable to 256 KB).

  • Output does not require system processor usage. System and video card can both access video memory simultaneously.

  • More details


Sound Add-in Card

  • 18 channels / voices

  • Dedicated audio coprocessor (65816) running at 10 MHz

  • 32 KB basic RAM (28 KB usable due to addressing design -- DPRAM and I/O using the 4 KB)

  • 512 KB firmware flash ROM

  • Onboard 512 KB flash ROM for media assets

  • Onboard 64 GB SD Card for media assets (uses onboard SPI for communication)

  • Dual-port static RAM for communication from/to the host system

  • Leverages three VIAs and six programmable sound generators

  • Playback independent of host system

  • Supports interrupts from system for commands and data

  • Can raise interrupts back to system

  • Two-line debug screen

  • More details


Joystick / NES Controller Add-in Card (and Add-on Board)

  • One ATARI joystick port

  • One NES controller port

  • Supports both interrupts and polling

  • More details


Overall System

  • System to USB mouse communication handled through VIA and Arduino Mega 2560

  • System to video card communication handled through dual-port SRAM.

  • System to sound card communication handled through dual-port SRAM and interrupts.

  • System to joystick/controller communication handled through VIA and optionally interrupts.

  • The entire system is running well at full speed (14.16 MHz for my build).

  • I am supplying 5.10 V to the system. Current draw is 1.37 A. The system debug screen and associated Arduino Mega 2560 are currently powered off of USB from my PC.

  • Along the way, I have so far developed several supporting utilities (mostly Winforms), including graphic import and conversion, PSG controller, music editor, MusicXML importer, a 65816 emulator, and a sound card emulator.

  • I have months of assembly work ahead of me.


I have posts on many different aspects of the above, including links to schematics and code. See BLOG | rehsd (rehsdonline.com).


Questions, suggestions? Drop me a line! Thanks!


Some related posts:

41 views0 comments