Here's the source code And here's a compiled demo of it doing a sort of pixel scrolling starfield
It can go faster if the zx81 block character is converted into something 'or able', if its greater than char 8 then subtract the value from $8F. Do the 'or', then convert it back, again greater than char 8 etc.
Running against the random pixel test since its mostly spaces, I'll bet it can go even faster still if it tests for the char and the char below being 0=space, and if so skip all the conversion 'or' stuff.
I used z88dk with m4 macros Visual Studio Code. Macros are your friend BTW. I cannibalized your random pixel test code (thanks for that.) Same technique horizontally: