ESP8266 Based i8008 Emulator

Dollhouse Sized, RS-232 Serial or Wireless, Runs SCELBAL - a BASIC Language From the 70's

Similar projects worth following
A very tiny ESP-01 based 8008 emulator, complete with RS-232 level serial I/O.

After more or less finishing my ESP-based Altair emulator, it occurred to me that it might be possible to write an 8008 emulator, using only the RAM available in an ESP8266. So, I did it. I took the opportunity to make the electronics and the housing smaller. This uses the lowly ESP-01, and has an activity light for serial/Telnet communication connected to GPIO2. The code works, but isn't pretty; I plan on getting some other 8008-based software working on it. The size is 1- 1/8" x 2-1/4" x 1-5/8", in a stained walnut case (1/8") with a deep red plexi lens front. Power is provided by a USB mini wall wart; the jack leads to a DB-9 cable. 

I don't really have woodworking tools to do something this small and delicate, but fortunately I did not lose any fingers while making the case.

There is virtually nothing to the hardware; basically, an ESP-01 leading to a China-sourced RS-232 level converter. A 1117 provides the 3.3 VDC.

OTA is included, but won't work unless you have an ESP-01S or a package with at least 1M flash. But even with the bottom-dollar original ESP-01, FTP works. You will have to adjust the SPIFFS size accordingly.

The source provided runs SCELBAL, GALAXY, Shooting Stars, Mike Willegal's mini-monitor (good for it's size), and the Microsystems International Limited monitor (which is very good, period). Modifications were made for byte I/O and other issues (such as caps-only or 8th bit set).

Why I did this, I don't really know. It did seem to be a challenge.

x-zip-compressed - 132.46 kB - 05/09/2020 at 16:55


  • Minor Screw-Up

    Steve L05/09/2020 at 16:57 0 comments

    The file I placed here a few days ago was missing a few files; this has been corrected.

  • Small Update

    Steve L05/07/2020 at 01:14 0 comments

    I've slightly updated this, with two significant changes.

    1. The addition of a "hangman" game in 8008 source/object.

    2. A transcription error was found and fixed  for the MIL monitor that could crash it on a certain instruction. The is has been fixed in the source and in the 8008 binary.

    Still to do, one of these days: come up with a magic keystroke that will bomb you out of an emulation and return you to the menu. My later project with video out can do this in most cases. Right now, the only way to 'leave' an emulation is to reset the ESP8266 in RS-232 mode, or exit the TCP/IP connection in wireless mode.

  • Companion Terminal for 8008 Emulator

    Steve L03/06/2018 at 01:47 0 comments

    The current software (here) runs SCELBAL, Galaxy, Shooting Stars, Mike Willegal's small monitor and the MIL monitor as Dave Dunfield transcribed it.  I also added a "CAPS ONLY" menu setting for terminals that didn't have such a function.

    I wanted a period-looking keyboard for this, so, I built a small terminal from Geoff Graham's site,, which utilizes a PIC32MX250F128B (mine is in the surface mount package with an adapter).  This has PS/2 keyboard input, but I did not use this except to set it up. The excellent firmware auto-detects VGA or composite video. It can do NTSC or PAL via PS/2 keyboard driven menu settings; I am using PAL because this allows more characters on the screen and my monitors support this.

    I used a PIC16F883 as a keyboard scanner for a TI-99/4A keyboard (NO WORKING, GOOD CONDITION TI-99/4A COMPUTERS WERE HARMED IN BUILDING THIS). The keyboard puts out serial at 9600 through a Chinese sourced RS-232 converter, and the terminal chip receives serial data at 9600 through the same converter.  The scanner supports the quirky, but very compact TI keyboard with all control/function characters, CAPS LOCK, and also auto-repeats. It has at least two key rollover, which is good enough for me.  The original icky TI cable was replaced with pins that connect to  a socket on my wire-wrapped board; short M3 posts were screwed and glued into the back of the TI keyboard in order to secure the board. The entire shebang runs from a 1A USB wall wart, dropped to 3.3V via a 1117. The case is 1/4" oak.

    I'm pretty certain that my RS-232 converter uses a counterfeit chip; but I have not ever had a problem with these running at 3.3V. 5V has in my experience immediately wiped them out although the original chip specs claimed they would operate on 3.3-5V.

    You always read that you need a crystal for RS232 asychronous communication, but in reality it probably has a tolerance of +/- several percent. Using the PIC's fairly high tolerance internal oscillator worked fine, and I have built several period-looking homebrew keyboards this way with no problems up to 9600 baud.

  • Source in "Files"

    Steve L11/26/2017 at 17:42 0 comments

    I've put the source in the 'files' section. This is, other than the development tools/libraries, what is needed to build the code. The manual is in the "source " directory. Working: SCELBAL,  Galaxy, Shooting Stars, Mike Willegal's mini-monitor, and Microsystems International Limited (MIL) monitor from ~1973, which is an amazing piece of code, capable of assembly and disassembly in 2K.

  • Source will be available...

    Steve L11/18/2017 at 05:03 0 comments

    I will have source available for this soon. I want to include a few more running 8008 programs, but I want to get permissions and provide credits for them. So far, I've got SCELBAL, Shooting Stars, and Mike Willegal's ( mini-monitor running. I've found  a bigger, more powerful monitor I'm trying to get running. Also the Galaxy (Star Trek) program is close, but not there yet.

    I'm getting some ESP-01S units in, which are like the original ESP-01 but with 1M of flash. With that, I'm fairly certain that I can restore the OTA programming function.

    As usual, my software is free, but it comes with an NDA clause - No Disparagement Allowed :) Seriously, I'm more of an idea guy than  coder. My code generally works well, but it it NOT pretty or a fine example or style or technique.

View all 5 project logs

Enjoy this project?



Steve L wrote 07/23/2020 at 13:56 point

This project uses the ESP-01(s), which was the very first "demo" board of the ESP8266, now not as common as the ESP-12's in metal shielded packages. It has limited I/O but was easy for me to prototype with. I  generally don't buy pre-assembled breakout boards because I program with USB to serial/RS-232 cables/converters; I don't have a reason to pay for/leave a USB interface on each project I build (this works out cheaper).  And, I'm just a caveman.

With that being said, there is absolutely no reason you couldn't load the firmware/files in this project on just about any "storebought" ESP8266 based breakout board with a USB interface on it and have it work with no "building" of anything at all.

  Are you sure? yes | no

Gregg C Levine wrote 07/21/2020 at 04:50 point

I agree. But did you build the breakout board yourself? And is the schematic available? I might try that one first, before your I8080 as an Altair one next.

  Are you sure? yes | no

Mike Szczys wrote 11/16/2017 at 16:11 point

Pretty incredible use of the ESP8266. Nice job!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

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