• Please review our updated Terms and Rules here

Tiny, Wireless 8008 Emulator

Slob

Experienced Member
Joined
Oct 20, 2017
Messages
172
Location
Kentucky USA
I just finished this up well enough to show:

https://hackaday.io/project/28227-esp8266-based-i8008-emulator

This is an ESP8266-based Intel 8008 emulator, running SCELBAL and the Shooting Stars game from flash. It's only about 1" x 2" x 1.5" in size, and housed in a dollhouse-sized walnut case somewhat reminiscent of 1970's hobby machines. No front panel, though. not bad for $5.00 or so of parts. The wood cost more!
 

glitch

Veteran Member
Joined
Feb 1, 2010
Messages
5,026
Location
Central VA
Neat! Way cheaper than the real thing, and a lot less annoying to interface with, I bet :)
 

Slob

Experienced Member
Joined
Oct 20, 2017
Messages
172
Location
Kentucky USA
Source Code available

Source Code available

Looks cool, where is the code available from?

Len

I've put the code in the Hackaday project. It includes and runs:
Galaxy
Shooting Stars
Mike Willegal's mini-monitor
Microsystems International Monitor

I hope that I've given appropriate credit to all who help preserve this code, including, but not limited to:
Dave Dunfield
Herb Johnson
Mike Willegal (who I'm fairly certain peruses this site)

All in all, I'm pleased with the results although the code is icky. I've been doing this.."for a while"...and I still can't believe how this was done with about $5.00 of parts.
 

Slob

Experienced Member
Joined
Oct 20, 2017
Messages
172
Location
Kentucky USA
Hi Steve,

Is the code for you "Companion Terminal for 8008 Emulator" available?

len

Actually, the PIC32 terminal design and code isn’t mine, its at:

http://geoffg.net/terminal.html

This was designed to work with a ps/2 keyboard and as written, using a ps/2 keyboard is the only way to easily set it up.

The ti99/4a*to serial ASCII keyboard, for a cheaper PIC, I can put up in a few days if you are interested. Ugly code, but it works well and is pretty easy to build.

*PLEASE don’t anyone hate me. That keyboard came from a nonworking machine in poor physical condition that I got cheap.
 

glitch

Veteran Member
Joined
Feb 1, 2010
Messages
5,026
Location
Central VA
*PLEASE don’t anyone hate me. That keyboard came from a nonworking machine in poor physical condition that I got cheap.

It'd be hard to pick a more fitting donor :p Seriously though, these are super common, they have little value, and a dead one is at this point hardly worth fixing.
 

mwillegal

Experienced Member
Joined
May 27, 2008
Messages
233
I love all these micro-controller based emulators that keep surfacing - very cool project.


"My" mini-monitor is really a port of Bob Cook's Basic CREED Monitor that was described in the May, 1975, volume 1, issue 7, of the "Micro-8" newsletter. The original was written for Baudot character code. I wanted to keep it at 256 bytes, and aside from changing it to ASCII, my peripherals were slightly different, so it took quite a bit of work to port it over to the SCELBI. However, the basic user interface semantics are nearly the same as the original. I found the practical usability to be surprisingly impressive for an implementation with so many hardware constraints. In fact, I would have been very proud of it, had I come up with that design, myself. Anyone with a recent generation Macintosh can try it out with my OS/X based SCELBI emulator: http://www.willegal.net/scelbi/scelbiapp.html.

The source for the ported monitor is here:http://www.willegal.net/scelbi/MCMON.html

regards,
Mike Willegal

I've put the code in the Hackaday project. It includes and runs:
Galaxy
Shooting Stars
Mike Willegal's mini-monitor
Microsystems International Monitor

I hope that I've given appropriate credit to all who help preserve this code, including, but not limited to:
Dave Dunfield
Herb Johnson
Mike Willegal (who I'm fairly certain peruses this site)

All in all, I'm pleased with the results although the code is icky. I've been doing this.."for a while"...and I still can't believe how this was done with about $5.00 of parts.
 

Slob

Experienced Member
Joined
Oct 20, 2017
Messages
172
Location
Kentucky USA
99/4A Keyboard to Serial Chip Code

99/4A Keyboard to Serial Chip Code

This code reads a TI 99/4A keyboard and emits serial ASCII. For some reason, I could not attach it as a .C file, but it is C, for PIC MPLAB Version 8.x. The chip is a fairly cheap 16F883, and you don't need a crystal for it (at least not up to 9600 baud) because the programming system trims the onboard oscillator for you. The draw at +5 or 3.3 is only a very small # of milliamps. As written, it was designed to work with an RS-232 converter but the output could be inverted in port setup, I believe. I mention that it really should have a "transmit buffer empty" interrupt and ring buffer for the serial output, but at fast bauds, this really doesn't matter. The baud is hard-coded, but an enterprising person could use jumpers or better yet, "power on keystrokes" to set the baud and store it into the chip's onboard EEPROM.

The keyboard should handle all common ASCII and control characters, although you may have to do odd things to get to them (note the weird "function" requirement for brackets, for example). Note that I use "alpha lock" for "caps lock". Of course, if you don't like it..you can change it. And, please don't laugh at the code. The only code I've written commercially in 20+ years is PL/SQL.

The keyboard itself is very compact and cramped, but it has a pretty good, old-timey stiff feel. I wonder if they made the keyboard specifically for smaller (kids?) hands. It's pad-printed, but it seems to have held up very well over time.

The way it works is simple; it scans the 8 (+1) x 6 matrix of keys and debounces them by adding /subtracting a threshold counter until it is hit (COUNTLIMIT). A second threshold (REPEATLIMIT) permits auto-repeat. I wouldn't try typing 100WPM (if that's even physically possible) but it shouldn't have ghosting problems, etc.

I don't mention the pinouts and port assignments, but it should be fairly obvious; I used the very nice schematic on the following page to design it.

http://www.mainbyte.com/ti99/keyboard/keyboard.html

If this is a problem, I'll buzz it out for you. I did this as kind of a "one-time-off" project, so, no schematic.

The keyboard is very easy to mount into a box; I used a scroll saw and my woodsman-quality woodworking skills to cut it out.
 

Attachments

  • kybd_ti.txt
    5.5 KB · Views: 2
Last edited:

8008guy

Veteran Member
Joined
Jun 25, 2014
Messages
584
Location
Salt Lake City, Utah
I need to dig through my stash of keyboards. A few years ago I bought a couple of unencoded keyboards off ebay. From what I am thinking they are close to what you are using.

Thanks for posting more about your project.

Len
 

Slob

Experienced Member
Joined
Oct 20, 2017
Messages
172
Location
Kentucky USA
The general design of this code is usable for just about any keyboard with a matrix. Here is one of those one-piece plastic block keyboards designed to be soldered into a PCB a la ADM-3, that I built into a terminal using the same chip but slightly different code.
 

Attachments

  • k.jpg
    k.jpg
    101.8 KB · Views: 1

Chuck(G)

25k Member
Joined
Jan 11, 2007
Messages
40,853
Location
Pacific Northwest, USA
There are still some cheap IBM iPoint NOS keyboards around. All it takes to interface is a 38KHz IR receiver and a UART port capable of doing 1200N81--no wires, no level translation. You get key-up/down codes, so it should be perfect.

G15326B.jpg
 

daver2

Veteran Member
Joined
Jun 19, 2012
Messages
9,417
Location
UK - Worcester
I have just purchased an ESP-01S with the intention of getting the ESP8266 Based i8008 Emulator running on it. Better late than never :)!

I wrote a Javascript emulator of the MIL MOD-8 a while ago and used Dave Dunfield's MONITOR-8 source code. I did notice an error in the transcription from the original. I fixed it in my emulation - but I see it has made it through to the ESP8266 Based i8008 Emulator implementation.

The source line in question is:

Code:
	DB	'F','P',050

This should be:

Code:
	DB	'F','P',030

There appears to be two (2) entries for the 050 base coding (TZ and FP) and none for the 030 base coding.

When I originally tried to enter assembly code into MON-8 for JFP and CFP it disassembled as JTZ and CTZ respectively. Once I had fixed the table, everything appeared to be correct.

I am looking forward to getting this running! I have wanted to 'play with' an ESP8266 for a while... Now I have an excuse!

Now I wonder if there is a PDP-8 implementation somewhere?

Dave
 
Last edited:

Slob

Experienced Member
Joined
Oct 20, 2017
Messages
172
Location
Kentucky USA
Through amazing coincidence, I've been playing with my toys during this downtime, and was actually thinking about _this very issue_ this week. I knew that somewhere I had seen this bug mentioned. I'll fix it.

I don't know if anyone else has actually made one of these for themselves yet. I put more effort into the later project where the ESP8266 actually puts out direct 80x24 video and reads a PS/2 keyboard (I bummed most of the code it took to do those things). The paper tape reader was a bonus.

The power of interrupts!!!!!

At my age, it just boggles my mind that all that was done with a $3.00 computer module, code, and a few switches, capacitors, resistors, and connectors.

I have several PDP/8 emulators (PiDP8, a wire wrapped Armstrong SBC6120, a few SB6120 PCB's), and I have given a PDP/8 emulator some thought. The 8266 doesn't have enough native RAM to do anything but a blah 4k version, but I have connected SPI RAM ($1.00) to an ESP8266 that runs at speeds good enough to do a credible 64K 8080 emulation with emulated CP/M disk drives (see other projects)...so...it's _definitely_ technically possible to do one with 32K, OS/8, and drives.
 

Slob

Experienced Member
Joined
Oct 20, 2017
Messages
172
Location
Kentucky USA
PS: Please do not laugh at my code. The only coding languages I've used to earn a buck in the last 20+ years are SQL and PL/SQL!!!!
 

daver2

Veteran Member
Joined
Jun 19, 2012
Messages
9,417
Location
UK - Worcester
One of my current projects (that I must get back to - but I am currently working at home, so I still don’t have much spare downtime despite the current situation!) is a wire-wrapped PDP-8 (thread is on the DEC forum).

This has physically 16KW SRAM, but can only use 4KW without the memory extension upgrade.

I have located the DEC 4KW disk monitor and almost patched it to work with a second serial port to connect to a PC to simulate an external disk drive. I could modify it to work with an emulator (using the same IOT instructions as for an RK05) for use with the ESP8266 and some local non-volatile storage. Sounds achievable. I’ll give it a bit of thought presently.

>>> Please do not laugh at my code.

I will have seen worse coding in my life (and these guys were paid!)...

Dave
 

Slob

Experienced Member
Joined
Oct 20, 2017
Messages
172
Location
Kentucky USA
I did get a round tuit, and fixed/recompiled the MIL monitor. This solved a weird problem I had where the monitor could not dump itself symbolically (DPS). It must have hit the problem instruction and went kaboom. I jhad attributed this to the original code, because I couldn't find the problem in the emulator.

I'm building a third version of this that will include the fix and also Mike Willegal's transcript/code of Hangman. It should be done in a few days and up on Hackaday.

It's so hard for me to change gears these days from code problems of today to those of 45 years ago!
 

Slob

Experienced Member
Joined
Oct 20, 2017
Messages
172
Location
Kentucky USA
I've updated the Hackaday site for this project with updates to the MIL monitor and Hangman.
 
Top