I come from the same lineage as the author. I did 6502 (doing C64 demos) long before I encountered the Z80. From what I remember, the Z80 offers a vastly superior programming experience. It has more registers. it has 16 bit registers. It has a shadow register set (you can switch between sets, which is handy for interrupt routines, for example) Programming assembly on the Z80 just is less of a fight.
The Z80 spawned the 64180 which was a Z80 with loads of stuff built in (from Wikipedia)<p>Execution and bus access clock rates up to 10 MHz<p>Memory Management Unit supporting 512K bytes of memory (one megabyte for the HD64180 packaged in a PLCC)<p>I/O space of 64K addresses<p>12 new instructions including 8 bit by 8 bit integer multiply, non-destructive AND and illegal instruction trap vector<p>Two channel Direct Memory Access Controller (DMAC)<p>Programmable wait state generator<p>Programmable DRAM refresh<p>Two channel Asynchronous Serial Communication Interface (ASCI)<p>Two channel 16-bit Programmable Reload Timer (PRT)<p>1-channel Clocked Serial I/O Port (CSI/O)<p>Programmable Vectored Interrupt Controller<p>As a consequence it was really popular in the 90s as an embedded processor just when I was starting my career. This lead to me writing thousands of lines of Z80 assembly. You could program it in C but the compiler was useless at making stuff go fast.<p>One of those things I wrote was an LZ77 decompressor used in a satellite broadcast system. It took me about a week to write it, test it and optimise it. Quite a challenge! I remember optimising it about the LDIR instruction to copy memory.<p>The compressor was written in C and ran on the PCs of the day.
TIL that my mind has dynamic memory and enjoys an occasional refresh cycle.<p>Thank you!