This page hosts my design files and some preliminary documentation, links and acknowledgements for the open source components I use in the design, as well as some links to 65C02 and chess computer resources.
The Verilog 65C02 softcore used in the 65F02 was developed by Arlet Ottens as a 6502 core, and enhanced by Ed Spittles and David Banks to support the 65C02 extensions. I just made minor changes to add the SYNC output and SO input. The source code for Arlet’s original 6502 version is available on Arlet’s site, the extended 65C02 version is on github, and discussion about the core can be found on the 6502.org forum.
Many thanks to Arlet, Ed and David for generously sharing the core as open source software, under the following simple license terms:
(C) Arlet Ottens
(C) 2016 David Banks and Ed Spittles
Feel free to use this code in any project (commercial or not), as long as you keep this message, and the copyright notice. This code is provided “as is”, without any warranties of any kind.
The TinyFPGA USB bootloader and programming software by Luke Valenty can be used to update the FPGA configuration via USB. I adapted the TinyFPGA bootloader to the Spartan-6 and pre-install it on the 65F02. As stipulated by Luke, the bootloader is distributed under the Apache License Version 2.0.
The TinyProg Python program runs on the PC and lets it communicate with the bootloader. A version adapted to the 65F02 can be downloaded above. Luke has published TinyProg under the GNU GPL license.
Many thanks to Luke for developing this very nice solution and making it available as open source software!
Datasheets for the various 65C02 versions are freely available, of course: Rockwell, Ricoh, GTE/CMD, WDC. If you look for timing diagrams, use any datasheet except WDC’s, which has them drawn badly.
An old application note by Western Design Center explains the differences between the various 65C02 versions. They all seem to be compatible with each other, except for the WDC version which has some special features.
“Programming the 65816” is a detailed programming manual with a somewhat misleading title, since it also covers the 6502, 65C02 and 65802. I actually found this book to provide more detail than I needed, and got by with the datasheets; but if you want to dive deeper and build your own 6502 variant or emulator, this is probably the book for you. Published by Western Design Center as a paperback or Kindle book. PDFs are floating around on the net, but I won’t link to them.
The forum at 6502.org is a great place to discuss 6502 projects, ask questions, find out about others' clever projects… Not a huge crowd there but smart people – the 65F02 project owes a lot to them, starting with the 65C02 softcore I use.
DASMx is my favorite disassembler for quickly exploring unknown binaries. It supports most popular 8-bit processors from the 1980s, and uses “code threading”: Given a starting point (the reset vector will do) it follows the code through all executable branches, and hence can decide which parts of the binary are code and which are data. Made available for free by the author, Peter Clare. The link goes to a mirrored copy of Peter’s original Geocities page; here’s an alternate copy of the page.
The most comprehensive collection of information on chess computers I have found is the German schachcomputer.info wiki. Technical data, contemporary magazine articles, photos of the externals and often the PCBs; but no ROM images to avoid copyright conflicts.
There is also the companion schachcomputer.info forum which has some good discussions on tuning the older computers, among other topics.
To prepare the 65F02 for use with a specific chess computer, information about the machine’s memory map is needed. For many computers, the community which supports the MAME/MESS emulator has already figured this out. The details can be found in the driver source code located at the MAME GitHub repository. Via GitHub’s Search field, look for the full name of the chess computer of interest, or the short file name (also used for ROM files) if you know it.
If a closer look into the chess computer’s ROM code is required, many ROM images can be found on sites which host ROM collections for use with the MAME emulator. I won’t link to specific sites here due to copyright concerns. Please note that the 65F02 itself does not contain any ROM images, but rather loads the ROM from the original host computer at runtime – hence no copyright issues arise.