When the far format specifiers got added to printf we had to save the alt registers. Which means that at one point in time af' is not what it should be. And so af gets modified and we end up with curious characters.
I'm now skipping over the far code for ixiy machines - will need to figure out a better way should one of those machines get far support (realistically it's probably a custom zx81 build to be honest).
Now it's fine again, thank you!
The ZX81 is sensitive indeed. I just noticed that in my new program I was accessing an unsigned int variable that I had forgotten to initialize, and that made the program crash on the ZX81, while it was no problem on all other targets.