The Z80 is an 8-bit CPU* that was extremely popular and common in the late 70s to mid 80s, being significantly more powerful than most of its competitors. It was used in many early hobbyist computers as well as several commercially successful machines (the Sinclair ZX80, 81, and Spectrum; Tandy's TRS-80 line of computers, and others). It was used in various scientific and graphing calculators, many coin-op arcade games (e.g. PacMan, Frogger, Galaxian, Galaga, Dig Dug), and several analog synthesizers (including models from Moog, Oberheim, and Roland). Nintendo's Game Boy, Game Boy Color, Game Boy Advance/SP/Micro used a variation of the Z80. In all, it was one of the key CPUs of the day.
While Intel invented the microprocessor, it was a startup, Zilog, that designed and developed the Z80 as an improvement on Intel's 8080 CPU. Zilog was started (and the Z80 designed by) Federico Faggin who (before leaving Intel to start Zilog) had led development of the 4004 and 8080 CPUs.
The Z80 essentially took over from the 8080 to become one of the three main processor families at the time. The other two were the 6502 family from MOS Technologies (notable for it's use in pre-Mac Apple computers, Commodore's VIC20 and C64, and many others) and the 6800 family from Motorola. The Z80 had several advantages over the older 8080 design, including:
- an enhanced instruction set
- more registers
- additional addressing modes
- simplified interfacing (power, clock, memory refresh, simpler buses) that required fewer external chips in a design (i.e. simpler and cheaper to use)
The focus here is on getting RunCPM working on the Grand Central, so this is as much of an intro to the Z80 we'll do here. For more, check out the wealth of material at z80.info. The author wrote a more detailed 2-part introduction to Z80 hardware and assembly language in issues 7 & 8 of Hackspace Magazine. A couple books worth reading, if you want a deeper dive into the Z80, are Build your own Z80 computer. Design guidelines and application notes by Steve Ciarcia and Programming the Z80 by Rodnay Zaks.
*CPU stands for Central Processing Unit, which is the part of a computer that executres instructions (the programs). MCUs (micro controller unit) like the ATMega328 and SAMD51 contain a CPU as well as memory and I/O circuits. The SAMD51's ARM Cortex-M4 core is the CPU. The ATMega328 has an AVR core as its CPU.
Text editor powered by tinymce.