Motivation
On Tuesday November 14th, 2023 I was invited to an event at York University to celebrate
"the momentous appearance of the MCM/70 computer - a technological marvel that offered an early glimpse of a new digital reality. "
You can see my "trip report" on the MCM/70 @ 50 event here. I was honored to have been asked to bring my MCM/70 Reproduction to demonstrate at the event. The reproduction was inspired by this post by Kristina Panos.
At the event I was delighted to meet Peter R. Jennings, author of MicroChess. Written originally for the KIM-1, MicroChess was ported to many other computers of the day such as the TRS-80, Apple II, Commodore PET and Atari 8-bit family. Later Peter went on to form VisiCorp, which released VisiCalc the first electronic spreadsheet for PCs and Visi On the first GUI for the IBM PC.
Images from the MCM/70 @ 50 event. In the rightmost photo above I am chatting with Peter R. Jennings of MicroChess and VisiCorp fame.
It turns out that Peter was/is a huge APL fan. APL is the language built-in to the MCM/70 computer. Around the time he was working on MicroChess he wrote a 6502 assembler in APL. I think he had fun exercising his APL skills on the reproduction.
The very next day November 15th, Maya Posch posted THE QUAINT HISTORY OF THE COMMODORE CHESSMATE to Hackaday. Now I'm not really a superstitious guy, and I know this was just a coincidence, but it sure felt like fate to me. I decided right there and then that I would like to create a CHESSmate reproduction. I got in touch with Peter to make sure he was OK with the idea and he was. He even graciously offered to loan me an original CHESSmate unit on which to base my reproduction. For someone that is used to just working from photos this is a rare treat for me.
Not only did Maya's post help me pick my next project, it inspired Peter to write down his recollections of the origins of CHESSmate, which can be found here.
Hardware
The hardware for the CHESSmate closely matches the KIM-1 SBC that it was based on.
- 6504 CPU (28-pin 6502)
- 8K addressable memory
- On-chip clock @ 1MHz
- 6530-0024 RIOT (64 bytes RAM, 1KB ROM, 2 I/O ports, 8-bit timer)
- 6332 4k ROM
- 4 7-element LED displays
- 4 dome indicator LEDs
- Piezoelectric beeper
- 19 membrane keys
I'm not going into a lot of detail here as there is a great post on Nightfall with more information.
Software
The software consists of a custom MicroChess 1.5 image and the firmware necessary to interface with the keys, display, LEDs , and beeper.
Game Plan
My plan is to make a clearly recognizable working Commodore CHESSmate, but using modern fabrication techniques. It should be relatively easy for an average person with access to a 3D printer and some soldering ability to make one based on my plans and the modelling files I will release.
I'm still in the research and thinking stage, but for sure I'll be 3D printing the case. The good news there is that the dimensions of the CHESSmate at 22 x 16 x 5 cm will allow me to print the top and bottom case parts on my Prusa MK3S whole, without having to split them into smaller pieces.
The next big component is the membrane keyboard. I'm hoping that a rigid PCB with low profile physical or dome switches combined with a color printed and laminated "membrane" will do the trick. Definitely more research and testing is required here to flesh out this plan.
And finally, what will MicroChess run on under the covers. The Nightfall article goes into some detail on why directly reproducing the CHESSmate electronics would be difficult, mainly because the RIOT chips used were pretty much custom made for the CHESSmate and are no longer available (although a fairly close analog could be designed with modern components).
I was a software guy my whole career, so I'm more comfortable with emulation than EE. MicroChess is already running on Oscar Vermeulen's wonderful KIM Uno diy clone. An Arduino Pro Mini runs a 6502 emulator written by Mike Chambers, which in turn executes code from the KIM-1 ROM, and this allows him to load and run MicroChess. Pretty cool. I especially liked his clever idea of mounting the Pro Mini directly on the back of his KIM Uno PCB. I have to say clever because I did the same thing on my MacroPad With Tile Holder Buttons PCB Edition project.
So my plan right now is to stand on Mike and Oscar's shoulders and run CHESSmate in emulation. I'm not completely giving up on a real 6502 based electronics alternative, but it would definitely be a stretch goal for me. Version 2.0 maybe?
Another Montage
Picture a montage of me printing and soldering and building all at fast-forward speeds. At this point, given the background and design described above, I went ahead and finished my CHESSmate Reproduction. If you are interested in the details of how this happened I would strongly encourage you to have a look at this project's logs for the complete picture. Here is a handy link: Project Logs.
Happy Ending
Left: CHESSmate Reproduction Middle: Minimal CHESSmate Right: Original CHESSmate.
What a fun and satisfying project. The CHESSmate Reproduction turned out better than I could have hoped for, plus I made a cool (IMHO) "minimal" bare bones CHESSmate. Of course there were a few missteps along the way (see the logs for details), but all in all things worked out pretty much as planned.
I have a couple of CHESSmate related ideas for the future.
- I thought that a micro CHESSmate might be fun, say something 1/3 the size of the minimal one pictured above.
- Software only CHESSmate with a proper display that includes a proper chess board. This would still be accomplished through emulation.
Not going to jump into either right away, but lately my projects have been grouped into trilogies so we'll see.