"Promulator" Downloadable EPROM Emulator
In order to build the 8080 and 8008 computers, I had to refresh myself with the 8080/08 instruction set itself, being kind of (20 years worth of) rusty. Combine rustiness with a programming style-admittely "burn and learn", and you have a lot of cycles of EPROM burning/erasing/burning. This causes wear and tear on everything - the EPROM, the eraser, the socket, me, and so on. A popular product in the late 80's was a downloadable EPROM, or emulator. The few I could find were kind of expensive, so I built one using a Scenix 28 pin chip. I chose the Scenix for several reasons:
1. Lotsa I/O, which (I thought-see later) would allow be to build a 2K model with just two chips - the Scenix chip
and the bytewide RAM)
2. I had them, and I had the develoment kit, and this looked like a good way to learn how to use it.
3. I had the very nice C2C C compiler for PIC's and Scenix chips.
So, like an idiot, I wire wrapped one up off the top of my head. The I/O would do the data/address lines and the not write line; "pulldown" resistors would take care of not CS and not OE. The RS-232 input would come from RA4/RTCC.

Figure 1. Top of 2Kx8 Prom Emulator.

Figure 2. Business End. The machine pin socket goes into the footprint of a 2716 EPROM.
OOPS! The Scenix chip, although a pretty good clone of the PIC, has no RA4, just the RTCC. I'm almost sure this was omitted because of a patent issue. There is no way to read the state of the pin. However, armed with the debugger and a great deal of patience, I came up with a very, very tricky piece of code to do non-interrupt driven RS-232/9600 baud input on the RTCC pin. Think about how difficult this might be to do. As they say, "this will be left as an excersize to the reader". The RS-232 input was implemented with a 4.7 volt Zener.
So, I wrote the code, in C with quite a bit of assembler. I don't like the SX-Key interface; it lacks a suprising number of obvious and easy to implement features. I don't like the Parallax mnemonics either, but I must admit that the SX-Key is a great deal for the money.
The "downloader" of the binary image was slapped together in Visual Basic, with (yuk) an intercharacter delay loop because I'm still not sure if the write cycle is fast enough to go between characters. But it still downloads very quickly, in about 10 seconds.
The protocol is very simple: A 0xFF starts things off, and 2048 characters later, the Scenix cuts off all I/O and "becomes invisible" except for its not W line pulled high. Before it does this, it toggles the not W line several times if it is sucessful, and this is connected to an LED.
If there is a RAM write failure the process is abandoned and the write line is toggled about 4 times a second, ad infinitum. The program also toggles the LED at boot up to let me know that it is alive. Without RS-232 coming back from the chip, the LED was needed! I have never had a "read/write" error or serial data error, though.
Because I used up all the I/O on the Scenix with 2K RAM, my next model will use a 4040 counter and emulate 2764/128/256 chips.
This was a very tough, but intreresting little project and I was pleased with the results. In addition to getting pretty good with C2C, parallax mnemonics and the debugger, I learned a few things (in some cases, again, unfortunately):
1. Design the hardware and software before building.
2. Sometimes, but not always, good software can fix bad hardware. So don't rely on it.
3. The Scenix chip isn't entirely a clone of the PIC; investigate what you want to do throrougly before executing a design.
I find it ironic that one of the newest microprocessors,the SX28, is helping me write code for one of the oldest, the 8080!