8080 Microprocessor In-Circuit Emulator Design

Not offered as a kit, but all design files needed to build your own are here.

Also, I am offering blank PC boards and programmed PIC chips only.  (see below)

Note: Xilinx is phasing out the 5V CPLD that I used for this design.  As of 4/2012,

Digi-Key has some stock.  Maybe other suppliers do as well.

Designed to assist in debugging/repairing 8080-based computers, like those made in the 1970's or early 1980's.  Inspired by Nicolet Paratronics' "NICE" Z80 In-Circuit Emulator, but with improved performance and additional features. 

It can:

  • Display and change 8080 internal registers
  • Display, disassemble, substitute, fill, compare, and test memory
  • Write to or read from I/O addresses
  • Compute 16-bit checksum of memory region
  • Trace through code with register display
  • Trace through code (faster) without register display but with breakpoints
  • Read or write Intel Hex file into/from memory
  • Enable/disable interrupts to reach CPU
  • Look for EPROM or RAM in system under test
  • Measure CPU clock frequency

It cannot:

  • Run at full speed with breakpoints  (This would require a lot more hardware.)
  • Run at full speed and capture a trace of executed instructions. (same comment as above)

Features:

  • Powered by system under test
  • 8080 is socketed so different parts can be used
  • PIC, 74HC4049, and HIN232 are socketed in case replacement becomes necessary
  • Controlled by generic terminal program running on any PC/laptop with a legacy serial port 
  • Serial baud rate is automatically detected
  • Tested so far in systems operating at 2 MHz.  

 Photo at top shows a populated 8080 ICE board with 40-pin DIP plug attached.   Using the DIP plug/socket provides the best (lowest capacitance and inductance) connection to the target system, but may not always be possible.  In those cases, the short ribbon cable (also shown) can be used.  The five chips are: 2 MHz 8080A, PIC18LF2420, Xilinx XC9536 CPLD, 74HC4049, and HIN232.  PC board supports connector for ribbon serial cable (shown) or 6-pin header for USB-to-serial adapter.  

Here are the assembly instructions, schematic page 1 and page 2, parts list, parts placement, and operating instructions.

Note:  Soldering the Xilinx CPLD used in this design requires a fine-tipped soldering iron and a steady hand.  Please don't attempt it unless you have experience working with fine-pitch SMT parts.  I won't be able to help you if your board doesn't work.

Note:  To program the CPLD after it is installed, you will need access to some sort of Xilinx JTAG programmer.  The one I use is an older design called "Parallel Cable III/DLC5".  It connects to a PC's parallel port.  (Here is a schematic, downloaded a long time ago from the Xilinx web site, which I think is for the JTAG programmer I have.)  Clones of  this may be available on a popular internet auction site.  Also, although I haven't tested it, this site is selling a programmer that appears to use the same circuit as the Xilinx one that I use.  Newer Xilinx JTAG programmers use USB and should work as well.

Note: You will need to program the PIC chip with some sort of programmer that can handle the PIC18LF2420.  These programmers are available on a popular internet auction site.  You will need a programmer that has a socket for the chip, not an in-circuit type, since my board does not have a header for in-circuit programming.  

Here is a .zip archive which contains a .hex file containing the PIC code (my latest version, V0.32), an ExpressPCB .pcb file, and a JEDEC file for programming the Xilinx CPLD using a JTAG programmer.  The .pcb file is the correct size for the "miniboard" service, and contains the main board plus the 40-pin DIP plug.  Cut the DIP plug PC board off before populating the main board.

Note: The pins on the DIP plug/socket are round machined pins, which may not fit into all IC sockets.  Of course you could always plug the round pins into a standard IC socket which has flat pins.

Note: The design information offered here is not guaranteed to be useful for any purpose.  Please download and use it at your own risk.  I will not be able to help you get your ICE working if you have trouble.

Note about cabling:  Someone recently built the ICE but put a male header on the DIP plug instead of the female, then was planning to use a female to female ribbon cable to connect this DIP plug to the ICE.  This won't work, as it swaps the pins relative to what the standard female socket would do.  Pin 1 of the ICE's 8080 ends up connected to pin 40 on the target system, pin 2 to pin 39, etc.  Please stick with the DIP plug attached to the ribbon cable that Digi-Key sells and mount a std IDC female on it, as shown in the photo on this page.  That will connect pin 1 to pin 1, 2 to 2, etc.

Prices (not including small per-order S&H fee):

8080 ICE blank circuit board - $25.00
Includes main ICE circuit and DIP plug.  No components are included or installed. Please download the assembly instructions, schematic page 1 and page 2, parts list, parts placement, and operating instructions.

8080 ICE programmed PIC chip - $7.00
A PIC18LF2420 chip programmed with the current version of the software.  Note that to build an ICE you would need to be able to solder and program the SMT CPLD chip yourself.

Watchdog Timers: Some people may want to use the ICE in systems with watchdog timers that automatically reset the CPU if not written to periodically.  (Many arcade games and pinball machines use watchdog timers.)  Provision has been made on the PC board for a small (optional) reset circuit on the ICE itself and for disconnecting the ICE from the target system's RESET signal.  Another option would be to disable the watchdog timer on the target system.  Luckily, some arcade games have a provision for disabling the watchdog timer.

DISCLAIMER: I take no responsibility whatsoever for the use and/or implementation thereof, or the misuse leading to damage to equipment, property, or life, caused by the above circuits.

 

     

Copyright © 2007-2013 by Tauntek.com. All rights reserved.