Close
0%
0%

Simon on SDK-85

A recreation of a 1970s classic using a 1970s dev platform.

Similar projects worth following
165 views
0 followers

Update - Nov 2023

See video below and project log for more details

Motivation

A few weeks ago, I found an Intel SDK-85 Single Board Computer at a ham-fest.  I am a sucker for anything with a keypad and 7 segment displays.  Having had a Heathkit ET-1 disappear in front of me, I made sure to act on this one as quickly as possible.  I didn't even know what it was, but I knew I needed it.

It's an Intel 8085 hardware/software development kit from the late 1970s.  It's aimed at the hobbyist/education market.  It sports a fine manual, generous 36 GPIO ports and a meager 256 BYTES of RAM.  It can be upgraded to 72 ports, 512 bytes of RAM, 2K EPROM, plus a full bus
expansion.

Being such a simple and vintage board, I wanted to recreate the experience of building something in a 1970s basement.  I looked for a problem space that was well matched to the SDK-85 and its obvious emphasis on hardware integration.  The answer became obvious - recreate the legendary Simon electronic game from 1978.

This is where alternative history took over.  I imagine myself as a lowly hobbyist inventor in my basement.  I could afford an SDK-85, but no teletype, and certainly not a "real" computer.  I would do this with the books, graph paper, pencils, and my trusty HP calculator.

Research and Design

I started by studying the Simon itself.  I didn't have one so I watched every YouTube video I could find.  I noted the color pattern and matched the tones to notes on my piano - E, A, C#, and E.  The
buzzer is the lowest D.  I also noted the game play patterns, such as displaying the correct color and tone for a correct guess, but also showing the correct color and the buzz for an incorrect guess, which also ends the game.

I made some concessions and have a simplified version of the game.  I omitted the GAME and DIFFICULTY switches, and also the START button.  Instead the game is started by simply pressing any of the 4 colors. I also don't stop the game after 10 moves, but allow the player to keep going for up to 256 moves.  I don't believe these choices detract from the game play and arguably make it more intuitive.

Lastly, when reading player input, the light and tone are displayed for a half second rather than however long the player held the button down.  This allowed a single tone routine and table to be used.  It also eliminated the need for any complex debounce routine as the player is given sufficient time to release the button while the tone is playing.

Next came hardware decisions.  The SDK-85 has a large wire-wrap prototyping area that makes up the left half of the board.  The buttons, lights, and speaker could all be installed here.  However, I was hesitant to "hack up" a vintage piece of hardware with non-reversible modifications.  I was also worried about pressure from the buttons flexing the board.

So, I decided on a detached daughter board that would house the 4 push button switches, lights, and speaker.  The daughter board connects to the SDK-85 using a ribbon cable into an IDC header I installed on the port 0/1 connector.  The switches I had on-hand were panel-mount type, so I drilled through the board to mount them - another reason to keep these on a daughter board.

The original Simon used incandescent lamps and a traditional cone speaker.  I decided to use colored LEDs and a piezo buzzer.  These parts are more readily available, are more compact, and use less power.  I am straying away from period correctness here, as blue LEDs weren't invented until the 90s.  However, this has no impact on the gameplay nor on the software development methodology, which is my real focus here.

Building It

The board was wire wrapped on a hot Saturday afternoon and does not represent my best work.  I completed the board in its entirety before getting to work on the software. ...

Read more »

bom.csv

Bill Of Materials

Comma-Separated Values - 2.93 kB - 11/01/2023 at 00:30

Download

simon.lst

Assembly listing (EPROM+PCB version)

lst - 12.73 kB - 11/01/2023 at 00:19

Download

Adobe Portable Document Format - 68.76 kB - 11/01/2023 at 00:18

Preview
Download

simon-1.0.1-gerbers.zip

Gerber files for PCB manufacturing

Zip Archive - 25.89 kB - 11/01/2023 at 00:14

Download

hpcalc.txt

Design aids for HP-15C. Should work with any HP calculator.

plain - 884.00 bytes - 08/07/2023 at 01:31

Download

View all 6 files

  • Updated Version

    jimshortz11/01/2023 at 00:08 0 comments

    Good news - we made our pitch to the game company and they have decided to fund the project.  We no longer have to hand assemble code, we now have a fancy Intel MDS-800 development system.  And no more wire wrapping - we have a professional looking printed circuit board.

    Obviously, that's the historical fiction part, but here's what really happened.  PCBWay reached out to me and offered to sponsor the project.  I designed a PCB which they manufactured for me free of charge.  I found some cool lighted LED switches and the whole thing has a much more professional and polished look.  And since this is a hardware product, I used the name "Disco Memory Game" to avoid any potential trademark issues.

    Shortly after publishing the original design, a summer thunderstorm knocked out our power.  So, the version I painstakingly typed into RAM vanished (as was inevitable).  So, I typed the source code into a modern computer and burned it into an EPROM.  While I no longer own an MDS-800, I did actually use the 8080 assembler from that platform to assemble my code, maintaining as close to the original experience as is practical.

    I have posted a new YouTube video that covers these updates.  You can also visit the PCBWay Shared Project to order your own or download the Gerbers and bill of materials.  The BOM can be uploaded to Mouser for easy ordering or you can procure parts on your own.  The lighted switches are the only parts that are not generic.  Lastly, the source code, Kicad files, and all other design assets are on my GitHub repository under the simon/ and kicad/simon directories.

View project log

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates