W65C816SXB Single Board Computer
08 May 2025
I’ve been getting back into 65xx assembly, so I decided to buy a W65C816SXB SBC which is a development board designed for education from WDC. The specs for this and the 65C02 version look great, but I really should have tried their WDCTools development software before I impulse bought this board! Their software is terrible. I spent an evening last night trying to get it to work but so far have failed. Walking through their Getting Started page didn’t even work.
Reading through the 6502 forums, I’m not the only person that ran into issues. Most other people that got it working reverse engineered the monitor program and have built their own tools. When they said it had a built in monitor program, I thought I’d just I’d just connect via USB serial and interact with the monitor, but it turns out that it is a binary protocol that only works with their tools.
I’ll keep updating this page as I learn more about the board and get it working. I will also serve as a reference to the software that others have created to work with the board.
Specifications
The W65C816SXB is a single-board computer utilizing the W65816 microprocessor. The board has 32 KB SRAM and 128 KB flash memory. The 128 KB flash memory is partitioned into four banks, one of which is accessible at a time in the address range $8000 - $FFFF.
By default, the flash bank on powerup contains monitor code which is designed to interface with a debugger application that runs on a Windows PC. Together, the monitor code and debugger application allow you to load code, inspect and modify memory and CPU registers, set breakpoints, single-step, etc.
- W65C816S MPU running at 8MHz.
- External Memory Bus with expansion connector
- 32KBytes SRAM
- 128KBytes FLASH ROM
- 2 x W65C22 VIA with one VIA Expansion Port
- 1 x W65C21 PIA with PIA Expansion Port
- 1 x W65C51N ACIA with ACIA Expansion Port
- USB Programmer’s port
WDCTools
Maybe it is just me, or maybe WDCTools are not supported on Windows 10/11, but I cannot get these tools to work properly. I can compile the samples, it looks like they upload to the board, but I never see changes in the memory or anything happening on the board. The tools do work using the simulators, just not with the boards, so more experimentation is needed.
Hint: Install to the default C:\WDC
directory otherwise you will need to manually update paths, settings and configuration files.
3rd-Party Tools
- w65c816sxb-hacker a tool for modifying the firmware on your WDC W65C816SXB Development Board via the ACIA port.
- w65c02sxb-monitor a simple monitor for the WDC W65C02SXB development board that can be assembled, downloaded and run on Windows, Linux and MacOS.
- Web-W65C02SXB web based IDE for the W65C02SXB.
- sbx Python script to interact with the W65C02SXB
- wdc_uploader_term fork of wdc_uploader_term from WDC. To be used with newer monitors for W65C816SXB. First version in the history is the WDC version.
Forum Discussions
- W65C816SXB mentions that the monitor protocol has changed? Three byte initial command?
- W65C816SXB communication error? Says the monitor program has changed and has a link to a new uploader in python.
- W65C02SXB board
Hackaday Projects
- W65C816SXB mentions the handshake has changed on the newer boards?
- W65C02SXB investigation
- W65C816SXB investigation
ROMs
- W65C816SXB-ROM-Disassembly this has fully reverse engineered the Monitor program, memory locations and the communication protocol.
- W65C816SXB-Custom-ROM an improved version of the built-in ROM monitor.
- msbasic PR to get BASIC running on the board
Memory Map
Address | Description |
---|---|
0x0000 | 32K RAM |
0x7E00 | Monitor RAM |
0x7F00 | 256 byte I/O space |
0x8000 | Monitor code |
0x8540 | Blank |
0xFFFA | NMI -> 0x8104 |
0xFFFC | RESET -> 0x8115 |
0xFFFE | IRQ/BRK -> 0x8100 |
Address | I/O | Size |
---|---|---|
0x7F00 | XBUS_CS0 | 32 |
0x7F20 | XBUS_CS1 | 32 |
0x7F40 | XBUS_CS2 | 32 |
0x7F60 | XBUS_CS3 | 32 |
0x7F80 | USER_ACIA | 4 |
0x7FA0 | USER_PIA | 32 |
0x7FC0 | USER_VIA | 32 |
0x7FE0 | SYSTEM_VIA | 32 |