# MPT8080

The MPT8080 "Microtutor" is a microprocessor trainer based on the Intel 8080 processor, developed by Limrose Electronics. It was designed in the mid-1970s to assist in the understanding of the then-new microprocessors.
Users of the MPT8080 enter assembly language programs via binary switches or a hexadecimal keypad. While the code executes, the user can observe what is happening on the address, data, and control signals of the microprocessor. The MPT8080 acts like a simulator, in that code can be stepped through one instruction—or each cycle of each individual instruction—at a time to observe what is happening.
The MPT8080 has simple input and output, consisting of eight LEDs and eight switches. The input port allows code to sense the state of external switches, whilst the output port can display information on one of its eight LEDs. The input and output ports also have connectors, allowing them to be connected to external signals through accessory patch kits, thus allowing the MPT8080 to control and monitor other circuitry.

## History

Initially, a Motorola 6800-based trainer was developed alongside the Intel 8080–based model, but due to technical and operational issues the 6800 trainer was abandoned.
As recently as 2012, the MPT8080 remained in academic use at King's College London, as part of a course in practical physics. As of 2011, the MPT8080 was still available for sale.

### MPT8080 Version 1

The initial version of the MPT8080 was designed by Dr. Ravi Raizada, the chief executive officer of Limrose Electronics. It was first marketed in 1976.
Details of version 1 of the microtutor are included in the book : Small Systems Computer Sourcebook, author: J C Boonham
This version used eight binary switches and a load button for program entry.

### MPT8080 Version 2

The second version, the MPT8080 K-1, and introduced during 1979, was designed by Stephen Pickering and replaced the binary switch input with a 16-key hexadecimal keypad. Although more than half of the trainer's circuitry was redesigned for this version, it remained compatible with the first version. A trace mode was added to allow single-cycle execution as well as machine cycles; this allowed the user to quickly step through code until reaching the portion of the program in which the user was interested. Latest UK price £495+vat (source: Limrose U.K.Price List 1st Sept 2010).
Features of the MPT8080 K-1 :
| Processor | Processor | Intel 8080A |
| Memory | Memory | One kilobyte: Two 2114 static 1K × 4-bit RAM chips |
| State machine | State machine | Based on 7400 series TTL chip; controls data entry and program execution |
| Input | Keypad | 20 keys: 16 hex digits (0–9, A–F) Reset Interrupt Clear current memory location Step (advance program counter) |
| Input | Keypad | Dallas/National Semiconductor 20-key keyboard decoder |
| Input | Control switches | MMLE / Run Manual Memory Load and Examine—set the operating mode to normal code execution or data entry SI/SC Single Instruction or Single Cycle for run mode; only relevant when in SSTP mode SSTP / CONT selects Single-Step or Continuous execution mode |
| Output | Program counter | 16 LEDs |
| Output | Data bus | Eight LEDs |
| Output | Status signals | Eight LEDs |
| Output | Output port | Eight LEDs |

## Operating the MPT8080

Programs are entered in the MPT8080 in data entry mode ("MMLE"). Each byte of the program is entered, either by toggling the binary switches and pressing the load button, or by entering the byte on the hexadecimal keypad. The program can then be executed.
The program can control the eight output port lines, turning the associated LEDs on or off.
By selecting single-step and single-cycle mode and stepping through a program with the step button, the user can see exactly what happens during every instruction cycle, observing the program counter, data bus and control signals on their corresponding LEDs.
By selecting single-instruction mode, rather than single-cycle mode, each press of the step button will execute a complete instruction, rather than a single cycle. This is useful for quickly advancing to a specific address.
The input/output ports can be used to read external signals and drive output devices like motors and buzzers with little or no additional hardware.
The system is programmed directly in 8080 machine code: