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.

The source of the 8008 emulator with runnable programs.

x-zip-compressed - 128.22 kB - 11/26/2017 at 15:55


  • 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 3 project logs

Enjoy this project?



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