Author here, interesting to see this posted since it's more like a reference manual for Z80 instructions with 'unusual' timings, mostly useful for emulator coders. The followup blog post about the cycle-stepped Z80 emulator is probably more interesting:
One important note: at the start of the post I'm speculating about why I was seeing some minor differences to a 'real' Z80, it turned out that this speculation was wrong and instead the differences were caused by 'incomplete' netlist simulation code which worked fine for the 6502 but required some tweaks for the Z80, see the comments of this GH issue for details: https://github.com/floooh/v6502r/issues/2.
As far as I'm aware the netlist simulation now behaves correctly like a Zilog Z80 (but note that some reverse engineered Z80 clones like the East German U880 are known to have slightly different undocumented behaviour - which barely matters in practice though). The Z80 and 6502 emulators in https://github.com/floooh/chips are tested against their respective netlist simulations for correct behaviour and timing (all being based on the netlists from http://www.visual6502.org/ and the simulation code from https://github.com/mist64/perfect6502 - which is the simulation from visual6502.org ported from JS to C).
and instead the differences were caused by 'incomplete' netlist simulation code which worked fine for the 6502 but required some tweaks for the Z80
That was very interesting to read. This is a nearly 50-year-old CPU, and yet many people are still discovering things about how it works in detail; or perhaps more precisely, discovering edge-cases in simulation and fixing the latter to more closely correspond with the actual physical processes it models.
Many 'ye olde 8-bitter' threads contain some discussion of the CPU ISA's 'from above' and it's interesting to read a look at the Z80 one 'from below', even if intended as a personal brain dump and reference. I'd encourage anyone curious to give at least the intro a skim, despite you selling it short!
Make sure to check the other works of floooh (Andre) as well. I'm porting his ZX Spectrum emulator to the RP2040 these days, and working with his code is amazing: it's clean, precise, never more complicated than needed, with a deep care to even the smallest details.
I'm interested, but... could I convince you to change the font and the colours into something that makes the site readable? Very thin font, light on dark, very little contrast is about the worst case for readability.
What browser and operating system are you on? Unfortunately font rendering seems to differ vastly between browsers. Note taken about the color palette though (I did try a brighter font color but found it too painful on my eyes).
PS: Firefox's and Chrome's reading mode is probably the best quick workaround. When opening a post in Firefox, I get a Reading Mode button in the navbar, and for Chrome it's in the new sidepanel.
I first opened it in Firefox on Linux. I think whatever subpixel rendering it's trying to do doesn't work with light fonts on dark background, there is blurriness and colour fringes. It seems to look a little better in Chromium. Just adding some weight to the font would already help.
Another thing that's hurting readability is monospace.
Chrome + Windows 11. And before that Chromium on various versions of Ubuntu Linux over the years. Firefox renders it practically identical to Chrome/Chromium.
I stayed for the content but the colors and the thin monospaced font didn't make it a pleasure. I have returned regularly over the years because I like the content so much.
> I did try a brighter font color but found it too painful on my eyes
Do you have retinal detachment? It can cause high contrast to be unpleasant to the point of being painful.
https://floooh.github.io/2021/12/17/cycle-stepped-z80.html
One important note: at the start of the post I'm speculating about why I was seeing some minor differences to a 'real' Z80, it turned out that this speculation was wrong and instead the differences were caused by 'incomplete' netlist simulation code which worked fine for the 6502 but required some tweaks for the Z80, see the comments of this GH issue for details: https://github.com/floooh/v6502r/issues/2.
As far as I'm aware the netlist simulation now behaves correctly like a Zilog Z80 (but note that some reverse engineered Z80 clones like the East German U880 are known to have slightly different undocumented behaviour - which barely matters in practice though). The Z80 and 6502 emulators in https://github.com/floooh/chips are tested against their respective netlist simulations for correct behaviour and timing (all being based on the netlists from http://www.visual6502.org/ and the simulation code from https://github.com/mist64/perfect6502 - which is the simulation from visual6502.org ported from JS to C).