Ok, any discussion of the Z80 has to start with an understanding of difference between static and dynamic RAM. Almost all microprocessors use dynamic RAM which is cheaper. The Z80 is somewhat unique in that it uses static RAM. Dynamic RAM requires that you continually "refresh" it with clocked signals. Static RAM, on the other hand, is more like a set of flip-flops that toggle between two states and stays that way until you change it (or remove power). NVRAM is a type of static RAM that retains its state even when power is removed. The Z80 did not have NVRAM.
Why is it cool that the Z80 uses static RAM? Because it allows you to take control of the clock, and gate it, or STOP it, without disrupting the operation of the CPU. If you tried to do that with a 6800, the internal memory would immediately lose the refresh and fail to work.
Why would you want to stop the clock on a Z80? By stopping the clock, you can then pulse the clock signal to "single step" the CPU. Every data line and control signal will act just as they do in full speed operation. You can watch the byte by byte operations of the instructions on the Z80 address and data busses in real time... slowed down to human time.
I built a simple monitor circuit to display the data and address lines, decoded into HEX for easy reading, along with LEDs for the R/W and other control lines. With the simple single step circuit, I could step the operations of the Z80 step by step to debug any software that I wrote. To do this with a 6800, you needed fancy logic analyzers and a "software development system" to do debugging. Even then you could not see the interoperation functions between the hardware chips. This is such a great learning tool that it should be used to teach new engineers how computers really work. Its truly "hands on" when you see data being read from the EPROM at an address, then loaded into a register in the Z80, then rewritten to a different address or to a peripheral chip.
It was also VERY helpful in debugging hardware. If you have a short or open circuit on any of the address or data bus, it was pretty easy to stop the Z80 and see the conflict with a simple oscilloscope or even a volt meter.
Next time, I will talk about some other unique cool aspects of the Z80, such as hardware vectored interrupts and the hardware block move commands.