# KR580VM80A

The KR580VM80A (Russian: КР580ВМ80А) is a Soviet microprocessor, a clone of the Intel 8080 CPU. Different versions of this CPU were manufactured beginning in the late 1970s, the earliest known use being in the SM1800 computer in 1979. Initially called the K580IK80 (К580ИК80), it was produced in a 48-pin planar metal-ceramic package. Later, a version in a PDIP-40 package was produced and was named the KR580IK80A (КР580ИК80А). The pin layout of the latter completely matched that of Intel's 8080A CPU. In 1986 this CPU received a new part number to conform with the 1980 Soviet integrated circuit designation and became known as the KR580VM80A (КР580ВМ80А), the number it is most widely known by today (the KR580VV51A and KR580VV55A peripheral devices went through similar revisions). Normal clock frequency for the K580IK80A is 2 MHz, with speeds up to 2.5 MHz for the KR580VM80A. The KR580IK80A was manufactured in a 6 μm process. In the later KR580VM80A the feature size was reduced to 5 μm and the die became 20% smaller.

## Technology and support chips

The KR580VM80A was manufactured with an n-MOS process. The pins were electrically compatible with TTL logic levels. The load capacity of each output pin was sufficient for one TTL input. The output capacitance of each control and data pins was ≤ 100pF each.
The family consists of the following chips:
| Designation | Designation | Western equivalent | Description |
| Russian | English | Western equivalent | Description |
| К580ИК80 | K580IK80 | Intel 8080 | central processing unit |
| КР580ИК80А | KR580IK80A | Intel 8080 | central processing unit |
| КР580ВМ80A | KR580VM80A | Intel 8080 | central processing unit |
| К580ИК51 | K580IK51 | Intel 8251 | serial interface/communication controller |
| КР580ИК51А | KR580IK51A | Intel 8251 | serial interface/communication controller |
| КР580ВВ51A | KR580VV51A | Intel 8251 | serial interface/communication controller |
| КР580ИК53 | KR580IK53 | Intel 8253 | programmable interval timer |
| КР580ВИ53 | KR580VI53 | Intel 8253 | programmable interval timer |
| К580ИК55 | K580IK55 | Intel 8255 | programmable parallel interface |
| КР580ИК55А | KR580IK55A | Intel 8255 | programmable parallel interface |
| КР580ВВ55A | KR580VV55A | Intel 8255 | programmable parallel interface |
| КР580ИК57 | KR580IK57 | Intel 8257 | programmable DMA controller |
| КР580ВТ57 | KR580VT57 | Intel 8257 | programmable DMA controller |
| КР580ВН59 | KR580VN59 | Intel 8259 | programmable interrupt controller |
| КР580ГФ1 | KR580GF1 | | system clock generator/driver |
| КР580ВГ18 | KR580VG18 | Intel 8218 | Multi-master bus arbitration logic |
| КР580ГФ24 | KR580GF24 | Intel 8224 | system clock generator/driver |
| КР580ВК28 | KR580VK28 | Intel 8228 | bus controllers/drivers |
| КР580ВН28 | KR580VN28 | Intel 8228 | bus controllers/drivers |
| КР580ВК38 | KR580VK38 | Intel 8238 | bus controllers/drivers |
| КР580ВТ42 | KR580VT42 | Intel 3242 | DRAM address multiplexer and refresh counter |
| КР580ВГ75 | KR580VG75 | Intel 8275 | programmable CRT video display controller |
| КР580ВГ76 | KR580VG76 | Intel 8276 | programmable CRT video display controller |
| КР580ВВ79 | KR580VV79 | Intel 8279 | programmable peripheral device, keyboard and display controller |
| КР580ВГ79 | KR580VG79 | Intel 8279 | programmable peripheral device, keyboard and display controller |
| КР580ИР82 | KR580IR82 | Intel 8282 | buffer registers |
| КР580ИР83 | KR580IR83 | Intel 8283 | inverting buffer registers |
| КР580ВА86 | KR580VA86 | Intel 8286 | bus drivers |
| КР580ВА87 | KR580VA87 | Intel 8287 | inverting bus drivers |
| КР580ВК91А | KR580VK91A | Intel 8291A | GPIB Talker / Listener |
| КР580ВГ92 | KR580VG92 | Intel 8292 | GPIB Controller |
| КР580ВА93 | KR580VA93 | Intel 8293 | GPIB Transceiver |
For brevity, the table above lists only the chip variants in a plastic DIP (prefix КР) as well as the original planar package (prefix К). Not listed separately are variants in a ceramic DIP (prefix КМ for commercial version and prefix М or no prefix for the military version) or export variants (prefix ЭКР) in a plastic DIP but with a pin spacing of one tenth of an inch.
For the KR580VM1 (КР580ВМ1) see Further development below.
Several integrated circuits in the K580 series were actually intended for other microprocessor families: the KR580VR43 (КР580ВР43 — Intel 8243) for the K1816 family (Intel MCS-48) and the KR580GF84 (КР580ГФ84 — Intel 8284) / KR580VG88 (КР580ВГ88 — Intel 8288) / KR580VB89 (КР580ВБ89 — Intel 8289) for the K1810 family (Intel 8086). Additionally, most devices in the K580 series could be used for the K1810 series as well.

## KR580VM80A vs. Intel 8080A

While the Soviet clone appears to be fully software-compatible with Intel 8080A, there is a slight difference between the two processors' interrupt handling logic, which looks like an error in the KR580VM80A's microcode. If a CALL instruction opcode is supplied during INTA cycle and the INT input remains asserted, the KR580VM80A does not clear its internal Interrupt Enable flag, despite the INTE output going inactive. As a result, the CPU enters a microcode loop, continuously acknowledging the interrupt and pushing the PC onto the stack, which leads to stack overflow. In a typical hardware configuration this phenomenon is masked by the behavior of 8259A interrupt controller, which deasserts INT during INTA cycle. The Romanian MMN8080 behaves the same as the KR580VM80A; no other 8080A clones seem to be affected by this error.

## Applications

The KR580VM80A was popular in home computers, computer terminals, industrial controllers. Some of the examples of its successful application are:
* KUVT Korvet educational computer
* Radio-86RK (Радио 86РК), probably the most popular amateur single-board computer in the Soviet Union
* Micro-80 (Микро-80 in Russian), Radio 86RK's predecessor
* Orion-128 (Орион-128 in Russian), Radio 86RK's successor, which had a graphical display
* Specialist (computer), similar to Orion-128
* UT-88 amateur computer
* SM 1800 industrial mini computer
* Vector-06C home computer, where KR580VM80A is overclocked to 3 MHz by design
* TIA-MC-1 (ТИА-МЦ-1) arcade machine
* Juku E5101 educational computer designed in Estonia
* Maestro (Маэстро) Soviet four voice hybrid analog synthesizer keyboard

## Further development

Mirroring the development in the West, where the Intel 8080 was succeeded by the binary compatible Intel 8085 and Zilog Z80 as well as the source compatible Intel 8086, the Soviet Union produced the IM1821VM85A (ИМ1821ВМ85А, actually the CMOS version Intel 80C85), KR1858VM1 (КР1858ВМ1), and K1810VM86 (К1810ВМ86), respectively. The 580VM80 is still shown on the price list of 1 October 2024 of the "Kvazar" plant in Kyiv together with various support chips of the K580 series.
Another development, the KR580VM1 (КР580ВМ1), has no western equivalent. The KR580VM1 extends the Intel 8080 architecture and is binary compatible with it. The extensions differ, however, from both the Intel 8085 and the Zilog Z80. The KR580VM1 extends the address range from 64KB to 128KB. It adds two registers, H1 and L1, that can be used instead of H and L. Several 16-bit arithmetic instructions were added as well (DAD, DSUB, DCOMP). Just like the Intel 8085 and the Zilog Z80, the KR580VM1 needs only a single +5V power supply instead of the three voltages required by the KR580VM80A. The maximum clock frequency was increased from 2 MHz to 5 MHz while the power consumption was reduced from 1.35W to 0.5W, compared to the KR580VM80A.