Information about Z80
The Zilog Z80 is an 8-bit microprocessor designed and sold by Zilog from July 1976 onwards. It was widely used both in desktop and embedded computer designs as well as for military purposes. The Z80 and its derivatives and clones make up one of the most commonly used CPU families of all time, and, along with the MOS Technology 6502 family, dominated the 8-bit microcomputer market from the late 1970s to the mid-1980s.
Although Zilog made early attempts with advanced mini-computer like versions of the Z80-architecture (Z800 and Z280), these chips never caught on. The company was also trying hard in the workstation market with its Z8000 and 32-bit Z80000 (both unrelated to Z80). In recent decades Zilog has refocused on the ever-growing market for embedded systems (for which the original Z80 and the Z180 were designed) and the most recent Z80-compatible microcontroller family, the fully pipelined 24-bit eZ80 with a linear 16 MB address range, has been successfully introduced alongside the simpler Z180 and Z80 products.
Zilog licensed the Z80 core to any company wishing to make the device royalty free, though many East European and Russian manufacturers made unlicensed copies. This enabled a small company's product to gain acceptance in the world market since second sources from far larger companies such as Toshiba started to manufacture the device. Consequently Zilog has made less than 50% of the Z80s since its conception.

The Z80 offered many real improvements over the 8080:
A CMOS version was also developed and the specified maximum clock frequency[1] increased successively from 2.5 MHz up to 8 MHz for the original NMOS design, and up to 20 MHz for the CMOS version sold today, while immediate derivatives such as the Z180 and eZ80 today are specified for 33 and 50 MHz respectively.
The refresh register, R, increments[3] each time the CPU fetches an opcode (or opcode prefix) and has therefore no simple relationship with program execution. This has sometimes been used to generate pseudorandom numbers in games, and also in software protection schemes. It has also been employed as a "hardware" counter in some designs; a famous example of this is the ZX81, which lets it keep track of character positions on the TV screen by triggering an interrupt at wrap around (by connecting INT to A6).
The interrupt vector register, I, is used for the Z80 specific mode 2 interrupts (selected by the im 2 instruction). It supplies the base address for a 128-entry table of service routine addresses which are selected via a pointer sent to the CPU during an interrupt acknowledge cycle. The pointer identify a particular peripheral chip and/or peripheral function or event, where the chips are normally connected in a so called daisy-chain for priority resolution. Like the refresh register, this register has also sometimes been used creatively.
In this process, the mnemonic L, for LOAD, was replaced by various abbreviations of the words LOAD, STORE and MOVE, intermixed with other symbolic letters. The mnemonic letter M, for memory (referenced by HL), was lifted out from within the instruction mnemonic to become a syntactically freestanding operand, while registers and combinations of registers became very inconsistently denoted; either by abbreviated operands (MVI D, LXI H etc), within the instruction mnemonic itself (LDA, LHLD etc), or both at the same time (LDAX B, STAX D etc).
Datapoint 2200 & i8008 i8080 Z80 i8086/i8088 (ca -1973) (ca 1974) (1976) (1978)
LBC MOV B,C LD B,C MOV BL,CL
-- LDAX B LD A,(BC) MOV AL,[BX] LAM MOV A,M LD A,(HL) MOV AL,[BP] LBM MOV B,M LD B,(HL) MOV BL,[BP]
-- STAX D LD (DE),A MOV [DX],AL LMA MOV M,A LD (HL),A MOV [BP],AL LMC MOV M,C LD (HL),C MOV [BP],CL
LDI 56 MVI D,56 LD D,56 MOV DL,56 LMI 56 MVI M,56 LD (HL),56 MOV byte ptr [BP],56
-- LDA 1234 LD A,(1234) MOV AL,[1234] -- STA 1234 LD (1234),A MOV [1234],AL
-- -- LD B,(IX+56) MOV BL,[SI+56] -- -- LD (IX+56),C MOV [SI+56],CL -- -- LD (IY+56),78 MOV byte ptr [DI+56],78
-- LXI B,1234 LD BC,1234 MOV BX,1234 -- LXI H,1234 LD HL,1234 MOV BP,1234
-- SHLD 1234 LD (1234),HL MOV [1234],BP -- LHLD 1234 LD HL,(1234) MOV BP,[1234] -- -- LD BC,(1234) MOV BX,[1234] -- -- LD IX,(1234) MOV SI,[1234] Illustration of four syntaxes, using samples of equivalent, or (for 8086) very similar, load and store instructions.
It is interesting to see the resemblance between Z80 and 8086 syntax, as illustrated by the table. Apart from naming differences, and despite a certain discrepancy in basic register structure, the two are virtually isomorphous for a large portion of instructions. Whether this is due to some common influence on both design teams (above 8080, such as PDP-11), the competitive nature of the relation between the two designs, or maybe just a matter of taste, is, so far, uncertain.[4]
There are several other undocumented instructions as well.
Examples of typical instructions (R=read, W=write) Total M-cycles instruction M1 M2 M3 M4 M5 M6
1 INC BC opcode 2 ADD A,100 opcode 100 3 ADD HL,DE opcode internal internal 4 SET 5,(HL) prefix opcode R(HL), set W(HL) 5 LD (IX+102),103 prefix opcode 102 103,add W(IX+102) 6 INC (IY+104) prefix opcode 104 add R(IY+104),inc W(IY+104)
The Z80 machine cycles are sequenced by an internal state machine which builds each M-cycle out of 3,4,5 or 6 discrete steps (i.e. clock cycles) depending on context. This avoids cumbersome asynchronous logic and makes the control signals behave consistently at a wide range of clock frequencies. Naturally, it also means that a higher frequency crystal must be used than without this subdivision of machine cycles (approximately 2-3 times higher). It does not imply tighter requirements on memory access times however, as a high resolution clock allows more precise control of memory timings and memory therefore can be active in parallel with the CPU to a greater extent (i.e. sitting less idle), allowing more efficient use of available memory performance. For instruction execution, the Z80 combines two full clock cycles into a long memory access period (the M1-signal) which would typically last only a fraction of a (longer) clock cycle in a more asynchronous design (such as the 6800, or similar).
Memory, especially EPROM, but also Flash, have since long been generally slow compared to the state machine sub-cycles (clock cycles) used in contemporary microprocessors. The shortest machine cycle that could safely be used in embedded designs has therefore often been limited by memory access times, not by the maximum CPU frequency (especially so during the home computer era). This relation has slowly changed during the recent decades, particularly regarding SRAM; cacheless single cycle designs such as the eZ80 have therefore become much more meaningful recently.
In the same manner as the x86 family, but unlike contemporary 8-bit processors, like the Motorola 6800 and Mos Technology 6502, the Z80 and 8080 had a separate control line and address space for I/O instructions. While some Z80-based computers used "Motorola-style" memory mapped input/output devices, usually the I/O space was used to address one of the many Zilog peripheral chips compatible with the Z80. Zilog I/O chips supported the Z80's new mode 2 interrupts (see description above) which simplified interrupt handling for large numbers of peripherals.

Mostek MK3880 and SGS-Thomson Z8400 (now ST Microelectronics) were both second-sources for the Z80. Sharp and NEC developed clones in NMOS, the LH-0080 and µPD780C respectively. Toshiba made a CMOS-version, the TMPZ84C00, which is believed (but not verified) to be the same design also used by Zilog for its own CMOS Z84C00. There were also Z80-chips marked GoldStar and LG.
In East Germany, an unlicensed clone of the Z80, known as the U880, was manufactured. It was very popular and was used in Robotron's and VEB Mikroelektronik Mühlhausen's computer systems (e.g. the KC85-series) and also in many self-made computer systems (ex. COMP JU+TER). In Romania another unlicensed clone could be found, named MMN80CPU and produced by Microelectronica, used in home computers like TIM-S, HC, COBRA.
Also, several fully compatible clones of Z80 were created in the Soviet Union, notable ones being the КP1858ВМ1 (there was an unproven rumor that it contains the East-German U880 chip inside) and T34BM1 (this one contains a real Soviet chip inside). Another Soviet CPU, the КP580ИK80 (later marked as КP580ВМ80), was a clone of the Z80's predecessor, the Intel 8080.
Free versions are the T80 and TV80, available as VHDL and Verilog sources under a BSD style license. The VHDL version, once synthesized, can be clocked up to 35 MHz on a Xilinx Spartan II FPGA. For large production series, it's much cheaper to use a traditional solution (or ASIC) than an FPGA, however.
Home computers using the Z80 (or equivalent) include the following:
Industrial/professional:
Although Zilog made early attempts with advanced mini-computer like versions of the Z80-architecture (Z800 and Z280), these chips never caught on. The company was also trying hard in the workstation market with its Z8000 and 32-bit Z80000 (both unrelated to Z80). In recent decades Zilog has refocused on the ever-growing market for embedded systems (for which the original Z80 and the Z180 were designed) and the most recent Z80-compatible microcontroller family, the fully pipelined 24-bit eZ80 with a linear 16 MB address range, has been successfully introduced alongside the simpler Z180 and Z80 products.
Zilog licensed the Z80 core to any company wishing to make the device royalty free, though many East European and Russian manufacturers made unlicensed copies. This enabled a small company's product to gain acceptance in the world market since second sources from far larger companies such as Toshiba started to manufacture the device. Consequently Zilog has made less than 50% of the Z80s since its conception.
Brief history and overview
The Z80 came about when Federico Faggin, after working on the 8080, left Intel at the end of 1974 to found Zilog with Ralph Ungermann, and by July 1976 they had the Z80 on the market. It was designed to be binary compatible with the Intel 8080 so that most 8080 code could run unmodified on it, notably the CP/M operating system.The Z80's original DIL40 chip package pinout.
- An enhanced instruction set including bit manipulation, block move, block I/O, and byte search instructions
- New IX and IY index registers and instructions for them
- A vectorized interrupt mode (mode 2), as well as a useful "no hardware"-mode (mode 1)
- Two separate register files, which could be quickly switched, to speed up response to interrupts
- A built-in DRAM refresh address mechanism that would otherwise have to be provided by external circuitry
- Single 5 Volt power supply
- Fewer support chips required for clock generation and interface to memory and I/O
- A much lower price
A CMOS version was also developed and the specified maximum clock frequency[1] increased successively from 2.5 MHz up to 8 MHz for the original NMOS design, and up to 20 MHz for the CMOS version sold today, while immediate derivatives such as the Z180 and eZ80 today are specified for 33 and 50 MHz respectively.
Technical description
Programming model and register set
The programming model and register set are conventional and similar to many other processors, such as the related x86 family. The 8080 compatible registers AF,BC,DE,HL are duplicated as two separate banks in the Z80, where the processor can quickly switch from one bank to the other; a feature useful for speeding up responses to single level, high priority interrupts. This makes sense as the Z80 (like most microprocessors at the time) was really intended for embedded use, not for personal computers, or the yet-to-be invented home computers.[2] It also turned out to be quite useful for hard-optimized assembly coding. Some software, especially games for the ZX Spectrum took Z80 assembly optimization to rather extreme levels, employing the duplicated registers among other things. The 8080 compatible registers:- AF - 8-bit accumulator (A) and flag bits (F) carry, zero, minus, parity/overflow, half-carry (used for BCD), and an Add/Subtract flag (usually called N) also for BCD
- BC - 16-bit data/address register or two 8-bit registers
- DE - 16-bit data/address register or two 8-bit registers
- HL - 16-bit accumulator/address register or two 8-bit registers
- SP - stack pointer, 16 bits
- PC - program counter, 16 bits
- IX - 16-bit index or base register for 8-bit immediate offsets
- IY - 16-bit index or base register for 8-bit immediate offsets
- I - interrupt vector base register, 8 bits
- R - DRAM refresh counter, 8 bits (MSB does not count)
- AF' - alternate (or shadow) accumulator and flags (toggled in and out with EX AF,AF' )
- BC',DE', and HL' - alternate (or shadow) registers (toggled in and out with EXX)
- Four bits of interrupt status and interrupt mode status
The refresh register, R, increments[3] each time the CPU fetches an opcode (or opcode prefix) and has therefore no simple relationship with program execution. This has sometimes been used to generate pseudorandom numbers in games, and also in software protection schemes. It has also been employed as a "hardware" counter in some designs; a famous example of this is the ZX81, which lets it keep track of character positions on the TV screen by triggering an interrupt at wrap around (by connecting INT to A6).
The interrupt vector register, I, is used for the Z80 specific mode 2 interrupts (selected by the im 2 instruction). It supplies the base address for a 128-entry table of service routine addresses which are selected via a pointer sent to the CPU during an interrupt acknowledge cycle. The pointer identify a particular peripheral chip and/or peripheral function or event, where the chips are normally connected in a so called daisy-chain for priority resolution. Like the refresh register, this register has also sometimes been used creatively.
The Z80 assembly language
Background - the Datapoint 2200 and Intel 8008
The first Intel 8008 assembly language was based on a very simple (but systematic) syntax inherited from the Datapoint 2200 design. This original syntax was later transformed into a new, somewhat more traditional, assembly language form for this same original 8008 chip. At about the same time, the new assembly language was also extended to accommodate the added addressing possibilities in the more advanced Intel 8080 chip (the 8008 and 8080 shared a language subset without being binary compatible; the 8008 actually was binary compatible with the Datapoint 2200 however).In this process, the mnemonic L, for LOAD, was replaced by various abbreviations of the words LOAD, STORE and MOVE, intermixed with other symbolic letters. The mnemonic letter M, for memory (referenced by HL), was lifted out from within the instruction mnemonic to become a syntactically freestanding operand, while registers and combinations of registers became very inconsistently denoted; either by abbreviated operands (MVI D, LXI H etc), within the instruction mnemonic itself (LDA, LHLD etc), or both at the same time (LDAX B, STAX D etc).
Datapoint 2200 & i8008 i8080 Z80 i8086/i8088 (ca -1973) (ca 1974) (1976) (1978)
LBC MOV B,C LD B,C MOV BL,CL
-- LDAX B LD A,(BC) MOV AL,[BX] LAM MOV A,M LD A,(HL) MOV AL,[BP] LBM MOV B,M LD B,(HL) MOV BL,[BP]
-- STAX D LD (DE),A MOV [DX],AL LMA MOV M,A LD (HL),A MOV [BP],AL LMC MOV M,C LD (HL),C MOV [BP],CL
LDI 56 MVI D,56 LD D,56 MOV DL,56 LMI 56 MVI M,56 LD (HL),56 MOV byte ptr [BP],56
-- LDA 1234 LD A,(1234) MOV AL,[1234] -- STA 1234 LD (1234),A MOV [1234],AL
-- -- LD B,(IX+56) MOV BL,[SI+56] -- -- LD (IX+56),C MOV [SI+56],CL -- -- LD (IY+56),78 MOV byte ptr [DI+56],78
-- LXI B,1234 LD BC,1234 MOV BX,1234 -- LXI H,1234 LD HL,1234 MOV BP,1234
-- SHLD 1234 LD (1234),HL MOV [1234],BP -- LHLD 1234 LD HL,(1234) MOV BP,[1234] -- -- LD BC,(1234) MOV BX,[1234] -- -- LD IX,(1234) MOV SI,[1234] Illustration of four syntaxes, using samples of equivalent, or (for 8086) very similar, load and store instructions.
The new syntax
According to Masatoshi Shima, certain people within Zilog wanted a "computer oriented" image for the company, and also felt they needed to "differentiate" their first product from the 8080. Intel had also claimed copyright on their assembly mnemonics. Yet another assembly syntax was therefore developed, but this time with a more systematic approach:- All registers and register pairs are explicitly denoted by their full names
- Round brackets are consistently used to state "contents of" (or indirection, or pointer dereferencing)
- All load and store instructions uses the same mnemonic name, LD, for LOAD (a return to the simplistic Datapoint 2200 vocabulary); other common instructions, such as ADD, INC etc, uses the same mnemonic regardless of addressing mode or operand size. This is possible because the operands themselves carry enough information.
It is interesting to see the resemblance between Z80 and 8086 syntax, as illustrated by the table. Apart from naming differences, and despite a certain discrepancy in basic register structure, the two are virtually isomorphous for a large portion of instructions. Whether this is due to some common influence on both design teams (above 8080, such as PDP-11), the competitive nature of the relation between the two designs, or maybe just a matter of taste, is, so far, uncertain.[4]
Instruction set and encoding
The Z80 uses 252 out of the available 256 codes as single byte opcodes; the four remaining codes are used extensively as opcode prefixes: CB and ED enable extra instructions and DD or FD selects IX+d or IY+d respectively (in some cases without displacement d) in place of HL. This scheme gives the Z80 a large number of permutations of instructions and registers; ZiLOG categorizes these into 158 different "instruction types", 78 of which are the same as those of the Intel 8080 (allowing operation of 8080 programs on a Z80). The ZiLOG documentation further groups instructions into the following categories:- 8-bit load
- 16-bit load
- Exchange, block transfer, and search
- 8-bit arithmetic and logic operations
- General purpose arithmetic and CPU control
- 16-bit arithmetic
- Rotate and shift
- Bit set, reset, and test
- Jump
- Call, return, and restart
- Input and output
Undocumented instructions
The index registers, IX and IY, were intended as flexible 16 bit pointers, enhancing the ability to manipulate memory, stack frames and data structures. Officially, they were treated as 16 bit only. In reality, they were implemented as a sort of copy of the HL register which is accessible as 16 bits or as a pair of 8 bit pair registers (H and L). Even the binary opcodes (machine language) were identical, but preceded by a new opcode prefix, as mentioned above. ZiLOG published the opcodes and related mnemonics for the intended functions, but did not document the fact that every opcode that allowed manipulation of the H and L registers was equally valid for the 8 bit portions of the IX and IY registers. As an example, the opcode 26h followed by an immediate byte value (LD H,n) will load that value into the H register. Preceding this two-byte instruction with the IX register's opcode prefix DD, would instead result in the most significant 8 bits of the IX register being loaded with that same value.There are several other undocumented instructions as well.
Instruction execution
As in all microprocessors, each instruction is divided into several steps which are usually termed machine cycles (M-cycles). Z80 needs between one and six M-cycles to execute a particular instruction as each M-cycle corresponds roughly to one memory access and/or internal operation. Many instructions actually end during the M1 of the next instruction which is known as a fetch/execute overlap.Examples of typical instructions (R=read, W=write) Total M-cycles instruction M1 M2 M3 M4 M5 M6
1 INC BC opcode 2 ADD A,100 opcode 100 3 ADD HL,DE opcode internal internal 4 SET 5,(HL) prefix opcode R(HL), set W(HL) 5 LD (IX+102),103 prefix opcode 102 103,add W(IX+102) 6 INC (IY+104) prefix opcode 104 add R(IY+104),inc W(IY+104)
The Z80 machine cycles are sequenced by an internal state machine which builds each M-cycle out of 3,4,5 or 6 discrete steps (i.e. clock cycles) depending on context. This avoids cumbersome asynchronous logic and makes the control signals behave consistently at a wide range of clock frequencies. Naturally, it also means that a higher frequency crystal must be used than without this subdivision of machine cycles (approximately 2-3 times higher). It does not imply tighter requirements on memory access times however, as a high resolution clock allows more precise control of memory timings and memory therefore can be active in parallel with the CPU to a greater extent (i.e. sitting less idle), allowing more efficient use of available memory performance. For instruction execution, the Z80 combines two full clock cycles into a long memory access period (the M1-signal) which would typically last only a fraction of a (longer) clock cycle in a more asynchronous design (such as the 6800, or similar).
Memory, especially EPROM, but also Flash, have since long been generally slow compared to the state machine sub-cycles (clock cycles) used in contemporary microprocessors. The shortest machine cycle that could safely be used in embedded designs has therefore often been limited by memory access times, not by the maximum CPU frequency (especially so during the home computer era). This relation has slowly changed during the recent decades, particularly regarding SRAM; cacheless single cycle designs such as the eZ80 have therefore become much more meaningful recently.
Compatible peripherals
Zilog introduced a number of peripheral parts for the Z80, which all supported the Z80's interrupt handling system and I/O address space. These included the CTC (Counter-Timer-Circuit), the SIO (Serial Input Output), the DMA (Direct Memory Access), the PIO (Parallel Input-Output) and the DART (Dual Asynchronous Receiver Transmitter). As the product line developed, low-power, high-speed and CMOS versions of these chips were produced.In the same manner as the x86 family, but unlike contemporary 8-bit processors, like the Motorola 6800 and Mos Technology 6502, the Z80 and 8080 had a separate control line and address space for I/O instructions. While some Z80-based computers used "Motorola-style" memory mapped input/output devices, usually the I/O space was used to address one of the many Zilog peripheral chips compatible with the Z80. Zilog I/O chips supported the Z80's new mode 2 interrupts (see description above) which simplified interrupt handling for large numbers of peripherals.
Undocumented 16 bit I/O-addressing
The Z80 was officially described as supporting 16 bit (64 KB) memory addressing, and 8 bit (256 ports) I/O-addressing. Looking carefully at the hardware reference manual, it can be seen that several I/O instructions, OUT (C),A for example, assert the contents of the entire 16 bit BC register to the address bus. An orthodox design would maybe decode the entire 16 bit address bus on I/O operations in order to take advantage of this feature, but it has also been used to minimize hardware requirements, see ZX81.Second sources, derivatives etc.
Second sources
Sharp's LH0080A Z80 clone
The T34BM1, a Soviet Z80 clone.
Mostek MK3880 and SGS-Thomson Z8400 (now ST Microelectronics) were both second-sources for the Z80. Sharp and NEC developed clones in NMOS, the LH-0080 and µPD780C respectively. Toshiba made a CMOS-version, the TMPZ84C00, which is believed (but not verified) to be the same design also used by Zilog for its own CMOS Z84C00. There were also Z80-chips marked GoldStar and LG.
In East Germany, an unlicensed clone of the Z80, known as the U880, was manufactured. It was very popular and was used in Robotron's and VEB Mikroelektronik Mühlhausen's computer systems (e.g. the KC85-series) and also in many self-made computer systems (ex. COMP JU+TER). In Romania another unlicensed clone could be found, named MMN80CPU and produced by Microelectronica, used in home computers like TIM-S, HC, COBRA.
Also, several fully compatible clones of Z80 were created in the Soviet Union, notable ones being the КP1858ВМ1 (there was an unproven rumor that it contains the East-German U880 chip inside) and T34BM1 (this one contains a real Soviet chip inside). Another Soviet CPU, the КP580ИK80 (later marked as КP580ВМ80), was a clone of the Z80's predecessor, the Intel 8080.
Derivatives
Currently produced:- Hitachi developed the HD64180, a microcoded and partially dynamic CMOS Z80 with on chip peripherals and a simple MMU giving a one MB address space. It was later second sourced by Zilog, both as Z64180 and as the slightly modified Z180, which has bus protocol/timings better adapted to Z80 peripheral chips, and, since long, is maintained and further developed under Zilog's name. The newest Z180s are based on the fully static S180/L180 core with very low power draw and EMI (noise).
- Toshiba developed the 84 pin Z84013 / Z84C13 and the 100 pin Z84015 / Z84C15 series of "intelligent peripheral controllers", basically ordinary NMOS/CMOS Z80 cores with large numbers of Z80 peripherals, watch dog timer, power on reset, and wait state generator on chip; today second sourced by Zilog.
- The 32-bit Z80 compatible Zilog Z380, introduced 1994, has survived but never gained real momentum; it is used mainly in telecom equipment.
- Zilog's fully pipelined 8/16/24-bit Z80 compatible eZ80 with a linear 16 MB address space was introduced in 2001 and has been much better received than the Z380; it exists in versions with on chip SRAM and/or flash memory, as well as with integrated peripherals; one variant has on chip MAC (media access controller) and available software include a TCP/IP stack. Contrasting to Z800/Z280, there are only a few added instructions (LEAs and variable-address 16/24-bit loads, basically), the old ones execute much faster instead.
- The Toshiba TLCS-870, TLCS-90 and TLCS-900 series of high volume (mostly OTP) microcontrollers are based on the Z80; they share the same basic BC,DE,HL,IX,IY register structure, and largely the same instructions, but are not binary compatible.
- Rabbit Semiconductor's Rabbit 2000/3000/4000 microprocessors/microcontrollers are based on the HD64180/Z180 architecture and are partially binary compatible.
- The Chinese Actions Semiconductor's ATJ2085 audio processor chip contains a Z80-compatible MCU together with a 24-bit dedicated DSP processor. The chip is used in a large number of MP3 players and other products.
- The ASCII Corporation R800 was a fast 16-bit processor used in certain MSX computers; it was software, but not hardware compatible with the Z80.
- Zilog's ill-fated NMOS Z800 and CMOS Z280 were quite fast Z80-implementations (before the HD64180 / Z180) with a 16 MB paged MMU address space; they added many orthogonalizations and addressing modes to the Z80 instruction set, but were too complex and mini-computer inspired to be a natural choice for most embedded applications.[7] In contrast, the plain CMOS Z80 has remained popular, alongside the compatible Z180 and eZ80 families.
FPGA and ASIC versions
A commercial, functionally equivalent, CPU core is the Evatronix CZ80CPU, available as synthesizable VHDL or Verilog source code, for high volume ASICs, or as post-synthesis EDIF netlists, for low volume FPGAs from Actel, Altera, Lattice or Xilinx.Free versions are the T80 and TV80, available as VHDL and Verilog sources under a BSD style license. The VHDL version, once synthesized, can be clocked up to 35 MHz on a Xilinx Spartan II FPGA. For large production series, it's much cheaper to use a traditional solution (or ASIC) than an FPGA, however.
Software emulation
Software emulation of the Z80 instruction set on modern PCs runs faster than the original Z80 CPU ran and is used for home computer simulators (such as ZX Spectrum and Amstrad CPC) and also for video game emulators such as MAME, which executes 1980s vintage video games. SIMH emulates MITS Altair 8800 computer, both Intel 8080 and Zilog Z80 versions.Notable uses
In desktop computers
During the late 1970s and early 1980s, the Z80 was used in a great number of fairly anonymous business-oriented machines with the CP/M operating system; a CPU/OS combination that dominated the market in much the same way that Windows based Intel-machines do today. Two well-known examples of Z80+CP/M business computers are the portable Osborne 1 and the Kaypro series. Research Machines manufactured the 380Z and 480Z microcomputers which were networked with a thin Ethernet type LAN and CP/NET in 1981. Other manufacturers of such systems included Televideo, Xerox and a number of more obscure firms. Some systems used multi-tasking operating system software to share the one processor between several concurrent users.Home computers using the Z80 (or equivalent) include the following:
- Radio Shack TRS-80
- Sinclair ZX80, ZX81, and ZX Spectrum
- Amstrad CPC and PCW series
- MicroBee
- The MSX standard home computers
- Spectravideo SV-318, SV-328 and successors
- Jupiter Ace
- Sharp MZ
- Galaksija
- MGT SAM Coupé
- Such was the popularity of the Z80 and CP/M that the Commodore 128 featured a Z80 processor alongside its MOS Technology 8502 processor for compatibility. Other 6502 architecture computers on the market at the time, such as the BBC Micro, Apple II and the 6510 based Commodore 64, could make use of the Z80 with an external unit, a plug-in card, or an expansion cartridge. The Microsoft Z-80 SoftCard for the Apple II was a particularly successful add-on card.
- The Z80 was also used in the Norwegian Tiki 100 computers, which were the computers of choice in Norwegian primary schools during the late 1980s.
- The Multitech Microprofessor I, introduced in 1981, was designed as a simple and inexpensive training system for the Z80 microprocessor. As of 2005, it was still on market.
- A Z80A Polish clone was also used in the ZX Spectrum clones produced by Polish company Elwro.
- In Romania, several Z80 based computers were manufactured: HC85, HC90, HC91, HC2000 (by the Felix Computers Factory, based in Bucharest), CIP-02, CIP-03 and CIP-04 (by the Electronica Factory, located in Bucharest) and TimS, microTIM and TimS+ (by the Timişoara Technical University).
In embedded systems and consumer electronics
The Zilog Z80 has long been a popular microprocessor in embedded systems and microcontroller cores, where it remains in widespread use today. The following list provides examples of such applications of the Z80, including uses in consumer electronics products.Industrial/professional:
- Office equipment such as matrix printers, fax machines, answering machines, and photocopiers are known examples.
- Industrial programmable logic controllers (PLCs) use the Z80 in CPU modules, for auxiliary functions such as analog I/O, or in communication modules.
- It has also been employed in robots, for example for low level tasks such as servo processors in pick and place machines.
- RS232 multiplexers connecting large numbers of old style "terminals" to minicomputers or mainframes used arrays of Z80 CPU/SIO boards.
- Applications such as TV broadcast vision mixers have used the Z80 for embedded real time subtasks.
- It has also been used in Seagate Technology's and other manufacturer's hard disks.
- Credit card consoles controlling fuel pumps used Z80 CPU and PIOs (US patent).
- Several PC expansion cards, such as Adaptecs SCSI boards, have been using the Z80/Z180 and peripheral chips.
- Z80/Z180/Z380 have been used in telecommunication equipment such as telephone switches, various kinds of modems etc.
- The Stofor message switch, used extensively by banks and brokers in the UK was Z80 based.
- Cash registers and store management systems
- Various scientific calculators use the Z80, including the Texas Instruments (TI) TI-83, TI-84, TI-85 and TI-86 series graphing calculators.
- All the S1 MP3 Player type digital audio players use the Z80 instruction set.
- Z80 was often used in coin-operated arcade games, commonly as either the main CPU or sound coprocessor; Pac-Man system games featured a single Z80 as a main CPU, while Galaga based games used 3 Z80's running in parallel for main CPU, graphics, and sound.
- It was also found in home video game consoles such as the ColecoVision, Sega Master System and Sega Game Gear video game consoles.
- Nintendo's Game Boy and Game Boy Color handheld game systems used a Z80 with a slightly different instruction set (the index registers and alternate register set are missing, but auto-increment/decrement addressing modes have been added), manufactured by Sharp Corporation. Game Boy Color is notable for its ability to selectively double the CPU clock speed when running Game Boy Color software. The currently available Game Boy Advance series of products still includes this same modified Z80 for backwards compatibility.
- Both the SNK Neo-Geo and Sega Mega Drive consoles use it as an audio coprocessor.
- MIDI sequencers such as E-mu 4060 Polyphonic Keyboard and Sequencer, Zyklus MPS, and Roland MSQ700 were built around the Z80,
- and also MIDI controllers and switches such as Waldorf Midi-Bay MB-15 and others.
- Several polyphonic analog synthesizers used it for keyboard-scanning (also wheels, knobs, displays...) and D/A or PWM control of analog levels; in newer designs, sometimes sequencing and/or MIDI-communication. The Z80 was also often involved in the sound generation itself; implementing LFOs, envelope generators etc. Known examples include:
- Sequential Circuits Prophet 5, Prophet 10, Prophet 600, Six-trak and Multitrak,
- Korg Polysix,
- Roland Jupiter-8,
- Oberheim OB-8
- and Moog MemoryMoog polyphonic synthesizer.
- Also digital sampling synthesizers such as the Emulator I and Emulator II used Z80 processors
- as well as drum machines like the E-muSP-12, SP1200, and the Drumulator.
See also
Articles about the Z80 microprocessor
Articles about Z80 architecture
- El-Hajj A, Kabalan KY, Mneimneh M, Karablieh F (August 2000). "Microprocessor simulation and program assembling using spreadsheets". Simulation 75 (2): 82-90 . DOI:10.1119/1.14604.
- Nagasawa K, Taki K, Tamemoto H, Lee BY, Tanaka H, Imai S, Kajikawa Y, Azuma D (April 1997). "Design and evaluation for super low power Z80 with pass-transistor logic". Sharp Technical Journal 67: 35-40.
- LUNSCHER W (1985). "SEMAPHORE STRATEGY FOR Z80". IEEE Micro 5 (3): 4.
- SMITH MF, LUFF BE (1984). "AUTOMATIC ASSEMBLER SOURCE TRANSLATION FROM THE Z80 TO THE MC6809". IEEE Micro 4 (2): 3-9.
Educational uses
- Diab HB, Demashkieh I (May 1991). "A computer-aided teaching package for microprocessor systems education". IEEE Transactions on Education 34 (2): 179-183. DOI:10.1109/13.81598.
- Nehrir MH, Odermann AJ, Bowen BD (November 1990). "A microcomputer-microprocessor-based DC motor speed controller for undergraduate electric machinery laboratory". IEEE Transactions on Education 33 (4): 341-345. DOI:10.1109/13.61087.
- C. D. Spencer and P. F. Seligmann (May 1986). "Microcomputers as digital electronics". American Journal of Physics 54 (5): 411-415. DOI:10.1119/1.14604.
- Mudge TN, Buzzard GD (1983). "Teaching Assembly Language Programming With ZIP, A Z80 Assembly Language Interpreter Program". IEEE Transactions on Education 26 (3): 91-98.
Scientific Applications
- Otieno FO, Kola BO, Onyango FN (Mar 1997). "On-line determination of thermophysical properties in an absorption calorimeter". Measurement Science & Technology 8 (3): 239-244. DOI:10.1088/0957-0233/8/3/004.
- Altieri S, Fossati F, Lanza A, Pinelli T (Apr 1995). "An Automated-System to Control the Polarization Voltage of Silicon Detectors". IEEE Transactions on Nuclear Science 42 (2): 57-60. DOI:10.1109/23.372132.
- Xiao FM, Li S (1992). "A Front-End Data Acquisition-System for Mossbauer-Spectroscopy". Hyperfine Interactions 71: 1531-1534. DOI:10.1007/BF02397372.
- T Brenner, S Buttgenbach, T Fabula and W Rupprecht (1988). "Real-time data acquisition system for laser and radio frequency spectroscopy". J. Phys. E: Sci. Instrum. 21: 1150-1153. DOI:10.1088/0022-3735/21/12/005.
- P M Kennedy and Z H Stachurski (1986). "A novel semi-contact extensometer based on Z80 microprocessor". J. Phys. E: Sci. Instrum. 19: 115-118. DOI:10.1088/0022-3735/19/2/003.
- Thomas L. Bunn, W. Stephen Woodward, and Tomas Baer (November 1984). "Design and operation of a 12.5-ns multichannel scaler". Review of Scientific Instruments 55 (11): 1849-1853. DOI:10.1063/1.1137678.
- K. L. Sala, R. LeSage, and R. W. Yip (November 1982). "S–100/Z80 microprocessor-based scanning microdensitometer and signal processing system". Review of Scientific Instruments 53 (11): 1682-1684. DOI:10.1063/1.1136870.
Notes and references
1. ^ Margins are great, and most chips actually works well at significantly higher (such as 2x) clock frequencies than specified; memory speed has often been the real (physical) limiting factor up until the last 15 years or so, when cheaper and faster available memory chips changed this relation.
2. ^ According to one of the designers, Masatoshi Shima, the market focus was on high performance printers, high-end cash registers, and intelligent terminals.
3. ^ While R is an 8 bit register, it wraps around at 128 instead of 256. If the programmer stores a value in the register, its high bit will be preserved regardless of what the CPU does to the remaining 7 bits. Incorrect implementation of this behaviour is a common source of problems when running games on emulated Z80-machines
4. ^ Surprisingly, only quite superficial similarities (such as the word MOV, or the letter X, for extended register) exists between the 8080 and 8086 assembly languages, despite the fact that 8080 programs can be compiled into x86 code (using a special assembler).
5. ^ The 10-year-newer microcoded Z180 design could initially afford more "chip area", permitting a slightly more efficient implementation (using a wider ALU, among other things), similar things can be said for the Z800, Z280, and Z380. However, it was not until the fully pipelined eZ80 was launched in 2001 that those instructions finally became approximately as cycle-efficient as it is technically possible to make them, i.e. given the Z80 encodings combined with the capability to do an 8-bit read or write every clock cycle.
6. ^ A retroactive "home computer" comparison: The Z80 takes 11 clocks for a 16-bit addition; the popular 6502 needs around 20 cycles to do the same thing using 8-bit operations. Using "typical" clocks of 4MHz versus 1MHz respectively (i.e. similarly fast memory chips), this translates into the Z80 being approximately seven times as fast as the 6502 for this particular operation (20/(11/4) ≈ 7).
7. ^ Minicomputer features such as, user and system modes, multiprocessor support, on chip MMU, on chip instruction and data cache, etc. was seen rather as more complexity than as functionality and support for the (usually electronics-oriented) embedded systems designer, it also made it very hard to predict instruction execution times.
2. ^ According to one of the designers, Masatoshi Shima, the market focus was on high performance printers, high-end cash registers, and intelligent terminals.
3. ^ While R is an 8 bit register, it wraps around at 128 instead of 256. If the programmer stores a value in the register, its high bit will be preserved regardless of what the CPU does to the remaining 7 bits. Incorrect implementation of this behaviour is a common source of problems when running games on emulated Z80-machines
4. ^ Surprisingly, only quite superficial similarities (such as the word MOV, or the letter X, for extended register) exists between the 8080 and 8086 assembly languages, despite the fact that 8080 programs can be compiled into x86 code (using a special assembler).
5. ^ The 10-year-newer microcoded Z180 design could initially afford more "chip area", permitting a slightly more efficient implementation (using a wider ALU, among other things), similar things can be said for the Z800, Z280, and Z380. However, it was not until the fully pipelined eZ80 was launched in 2001 that those instructions finally became approximately as cycle-efficient as it is technically possible to make them, i.e. given the Z80 encodings combined with the capability to do an 8-bit read or write every clock cycle.
6. ^ A retroactive "home computer" comparison: The Z80 takes 11 clocks for a 16-bit addition; the popular 6502 needs around 20 cycles to do the same thing using 8-bit operations. Using "typical" clocks of 4MHz versus 1MHz respectively (i.e. similarly fast memory chips), this translates into the Z80 being approximately seven times as fast as the 6502 for this particular operation (20/(11/4) ≈ 7).
7. ^ Minicomputer features such as, user and system modes, multiprocessor support, on chip MMU, on chip instruction and data cache, etc. was seen rather as more complexity than as functionality and support for the (usually electronics-oriented) embedded systems designer, it also made it very hard to predict instruction execution times.
External links
- ZiLOG Z80 Product Family – Zilog official webpages
- Z80-Family Official Support Page – Created by Thomas Scherrer, maintained by Gaby Chaudry
- Computers using Z80 CPUs – Compiled by Michael Kromeke
- Z80 software emulators – Listed at the Zophar's Domain website
- Free Z80 CPU core (VHDL code), (Verilog code) – From OpenCores.org
References
Zilog Components Data Book, Zilog, Campbell California, 1985, no ISBNZiLOG processors | |
|---|---|
| Z80 series | Z80 • Z180 • Z280 • Z380 • Z800 • eZ80 |
| Z8000 series | Z8000 • Z80000 |
| Microcontroller | Z8 |
| z80 Compatibles | NEC uPD780C • Sharp LH-0080 • T34 • ASCII R800 • U880 |
| 8-bit Microcontroller Families |
|---|
| PIC AVR COP8 MCS-48 MCS-51 Z8 eZ80 HC08 HC11 H8 PSoC |
8-bit integers, memory addresses, or other data units are those that are at most 8 bits (1 octet) wide. Also, 8-bit CPU and ALU architectures are those that are based on registers, address buses, or data buses of that size.
..... Click the link for more information.
..... Click the link for more information.
Microprocessor
Die of an Intel 80486DX2 microprocessor (actual size: 12×6.75 mm) in its packaging
Date Invented: Late 1960s/Early 1970s (see article for explanation)
Connects to:
..... Click the link for more information.
Die of an Intel 80486DX2 microprocessor (actual size: 12×6.75 mm) in its packaging
Date Invented: Late 1960s/Early 1970s (see article for explanation)
Connects to:
..... Click the link for more information.
Zilog, NASDAQ: ZILG often seen as ZiLOG (the official company denotation since 1998), is a manufacturer of 8-bit, 16-bit, 24-bit, and 32-bit CPUs, and is most famous for its Intel 8080-compatible Z80 series.
..... Click the link for more information.
..... Click the link for more information.
19th century - 20th century - 21st century
1940s 1950s 1960s - 1970s - 1980s 1990s 2000s
1973 1974 1975 - 1976 - 1977 1978 1979
Year 1976 (MCMLXXVI
..... Click the link for more information.
1940s 1950s 1960s - 1970s - 1980s 1990s 2000s
1973 1974 1975 - 1976 - 1977 1978 1979
Year 1976 (MCMLXXVI
..... Click the link for more information.
An embedded system is a special-purpose computer system designed to perform one or a few dedicated functions.[1] It is usually embedded as part of a complete device including hardware and mechanical parts.
..... Click the link for more information.
..... Click the link for more information.
central processing unit (CPU), or sometimes simply processor, is the component in a digital computer capable of executing a program.(Knott 1974) It interprets computer program instructions and processes data.
..... Click the link for more information.
..... Click the link for more information.
MOS Technology, Inc., also known as CSG (Commodore Semiconductor Group), was a semiconductor design and fabrication company based in Norristown, Pennsylvania, in the United States.
..... Click the link for more information.
..... Click the link for more information.
The MOS Technology 6502 is an 8-bit microprocessor that was designed by Chuck Peddle for MOS Technology in 1975. When it was introduced, it was the least expensive full-featured CPU on the market by a considerable margin, costing less than one-sixth the price of competing designs
..... Click the link for more information.
..... Click the link for more information.
Minicomputer (colloquially, mini) is a largely obsolete term for a class of multi-user computers that lies in the middle range of the computing spectrum, in between the largest multi-user systems (mainframe computers) and the smallest single-user systems (microcomputers or
..... Click the link for more information.
..... Click the link for more information.
The Zilog Z800 was a 16-bit microprocessor designed by Zilog to be released in 1985. It was instruction compatible with their existing Z80, and differed primarily in having on chip cache and MMU for a 16 MB address range, and also a huge number of new more orthogonal instructions
..... Click the link for more information.
..... Click the link for more information.
The Zilog Z280 was an enhancement of the Zilog Z80 architecture introduced in July 1987, basically a slighly improved CMOS version of the earlier NMOS Zilog Z800, both versions were commercial failures.
..... Click the link for more information.
..... Click the link for more information.
workstation, such as a Unix workstation, RISC workstation or engineering workstation, is a high-end desktop or deskside microcomputer designed for technical applications.
..... Click the link for more information.
..... Click the link for more information.
Z8000 was a 16-bit microprocessor introduced by ZiLOG in 1979. It was architected by Bernard Peuto and designed by Masatoshi Shima. It was one of the last computer systems designed by a single person.
..... Click the link for more information.
..... Click the link for more information.
In computer architecture, 32-bit integers, memory addresses, or other data units are those that are at most 32 bits (4 octets) wide. Also, 32-bit CPU and ALU architectures are those that are based on registers, address buses, or data buses of that size.
..... Click the link for more information.
..... Click the link for more information.
The Z80000 was Zilog's 32-bit processor from 1986, an expansion of its 16-bit predecessor, the Zilog Z8000. It included multiprocessing capability, a six-stage instruction pipeline, and a 256-byte cache. Its memory addressing system could access 4 gigabytes of RAM.
..... Click the link for more information.
..... Click the link for more information.
An embedded system is a special-purpose computer system designed to perform one or a few dedicated functions.[1] It is usually embedded as part of a complete device including hardware and mechanical parts.
..... Click the link for more information.
..... Click the link for more information.
Zilog Z180 8-bit processor is a successor of the Z80 CPU. It is compatible with the large base of software written for the Z80. The Z180 family adds higher performance and integrated peripheral functions like clock generator, 16 bit counters/timers, interrupt controller, wait-state
..... Click the link for more information.
..... Click the link for more information.
microcontroller (or MCU) is a computer-on-a-chip. It is a type of microprocessor emphasizing self-sufficiency and cost-effectiveness, in contrast to a general-purpose microprocessor (the kind used in a PC).
..... Click the link for more information.
..... Click the link for more information.
In computer architecture, 24-bit integers, memory addresses, or other data units are those that are at most 24 bits (3 octets) wide. Also, 24-bit CPU and ALU architectures are those that are based on registers, address buses, or data buses of that size.
..... Click the link for more information.
..... Click the link for more information.
The ZiLOG eZ80 is an 8-bit microprocessor which is essentially an updated version of the company's earlier Z80 8-bit microprocessor.
The eZ80 (like the Z380) is binary compatible with Z80 and Z180, but almost four times as fast as the old Z80 chip at the same core frequency.
..... Click the link for more information.
The eZ80 (like the Z380) is binary compatible with Z80 and Z180, but almost four times as fast as the old Z80 chip at the same core frequency.
..... Click the link for more information.
prevew not available
..... Click the link for more information.
..... Click the link for more information.
Mbyte, MB, Mb, mB or mb may refer to:
..... Click the link for more information.
- Mb (digraph)
- Megabit (Mb), 1,000,000 bits or 220 = 1,048,576 bits
- Megabyte (MB), 1,000,000 bytes or 220 = 1,048,576 bytes
..... Click the link for more information.
Zilog Z180 8-bit processor is a successor of the Z80 CPU. It is compatible with the large base of software written for the Z80. The Z180 family adds higher performance and integrated peripheral functions like clock generator, 16 bit counters/timers, interrupt controller, wait-state
..... Click the link for more information.
..... Click the link for more information.
In electronic design a semiconductor intellectual property core, IP block, or IP core is a reusable unit of logic, cell, or chip layout design and is also the intellectual property of one party.
..... Click the link for more information.
..... Click the link for more information.
Royalty-free describes material (typically graphics such as stock photography and icons, but also sound such as music loop samples) that may be used for profit, without paying royalties.
..... Click the link for more information.
..... Click the link for more information.
In the electronics industry, a second source is a company that is licensed to manufacture and sell components originally designed by another company (the first source).
It used to be common for purchasers to avoid components that were only available from a single source.
..... Click the link for more information.
It used to be common for purchasers to avoid components that were only available from a single source.
..... Click the link for more information.
Toshiba Corporation
株式会社東芝
Corporation TYO: 6502 , (LSE: TOS )
Founded Tokyo, Japan (1904)
Headquarters Tokyo, Japan
Key people Atsutoshi Nishida, President & CEO
Industry Electronics & engineering
..... Click the link for more information.
株式会社東芝
Corporation TYO: 6502 , (LSE: TOS )
Founded Tokyo, Japan (1904)
Headquarters Tokyo, Japan
Key people Atsutoshi Nishida, President & CEO
Industry Electronics & engineering
..... Click the link for more information.
Federico Faggin (born December 1 1941) is an Italian-born physicist/electrical engineer, principally responsible for the design of the first microprocessor and responsible for leading the 4004 (MCS-4) project to its successful outcome and for promoting its marketing.
..... Click the link for more information.
..... Click the link for more information.
Intel 8080
Central processing unit
An Intel C8080A processor.
Produced: mid 1974
Manufacturer: Intel
CPU Speeds: 2 MHz
Instruction Set: pre x86
Number of cores:
..... Click the link for more information.
Central processing unit
An Intel C8080A processor.
Produced: mid 1974
Manufacturer: Intel
CPU Speeds: 2 MHz
Instruction Set: pre x86
Number of cores:
..... Click the link for more information.
Intel Corporation
Public (NASDAQ: INTC , SEHK: 4335 )
Founded 1968 1
Headquarters Santa Clara, California
United States
Key people Paul S.
..... Click the link for more information.
Public (NASDAQ: INTC , SEHK: 4335 )
Founded 1968 1
Headquarters Santa Clara, California
United States
Key people Paul S.
..... Click the link for more information.
This article is copied from an article on Wikipedia.org - the free encyclopedia created and edited by online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of the wikipedia encyclopedia articles provide accurate and timely information please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.
Herod_Archelaus

