BTW, as a "stress test" and "eat your own dog food" exercise, I'm doing https://adventofcode.com/2020 in sjasmplus... not as Z80 machine code, but using sjasmplus macro scripting to resolve the puzzles during assembling-time...

For example the day 11 puzzle assembles like this (the asm file has 114 lines of "script"):
$ sjasmplus seating_system_p2.asm
SjASMPlus Z80 Cross-Assembler v1.18.0 (https://github.com/z00m128/sjasmplus)
Pass 1 complete (0 errors)
Pass 2 complete (0 errors)
include data: name=input.txt (9702 bytes) Offset=0 Len=9702
> Map size: 98x98 extending to 100x100
> Rounds to reach stability: 90
> Final state has **** seats occupied.
Pass 3 complete
Errors: 0, warnings: 0, compiled: 68000349 lines, work time: 55.454 seconds
(I will publish all scripts on github after the event will end, so if anyone is really bored, they may check how is it possible to do in sjasmplus - IIRC there's 0-1 lua scripts, all is regular sjasmplus mess )