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.
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:
USB mouse add-in card
Video add-in card
Sound add-in card
Joystick / controller add-in card
ATX form factor
W65C816S6TPG-14 processor, running at 14.16 MHz
32 KB basic RAM
480 KB flash ROM
512 KB extended RAM
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).
USB Mouse Add-in Card
Arduino Mega 2560 with USB host shield
USB data sent to system through an onboard W65C22S6TPC-14 versatile interface adapter (VIA)
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.
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
Joystick / NES Controller Add-in Card (and Add-on Board)
One ATARI joystick port
One NES controller port
Supports both interrupts and polling
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: