For the record, I re-downloaded my Devtools (2021 ver) and the latest sources, and assembled with the "Vasm ZXS" option
You can see the program works correctly as shown in the screenshot.

- sample.png (17.81 KiB) Viewed 10021 times
You will find different assemblers do work differently, even a simple command like "ORG" can behave differently, some assemblers pad with zeros between org statements, and some assembler directives are treated like commands, which cause unexpected effects...
I recently updated my Vasm build for some 6502 dev, and the "setdp" compiler directive now causes unintended padding if it occurs before the ORG, where it did not in the previous build - the point I'm making is that even different versions of the same assembler do not have the same effect. That's why I provide the assembler,emulators and sample sources I use.
You'll also find mathematical calculations do not always work the same, because of the way the assembler works with symbols during it's passes - and operator precedence may not be the same (Winape's assembler can't do brackets!)
And I haven't even asked how you're building a tape/snapshot file to run on your emulator - nor will I!
Anyway, When I start learning a new system, I typically find a simple example to start from, and convert it and get it running with VASM or whatever assembler I favor, That often takes a week or more - and is the hardest part of getting started, because you're fumbling with an unknown source, and unknown assembler, and unknown emulator/machine. Again I was hoping to help beginners by providing all 3... source,assembler and emulator.
But of course, I totally encourage you to go your own way, I'm in no way saying what I'm using is right, or that my examples are the best - I'm sure they are not.
I suggest you look for an alternative example which uses the assembler you favor..
Good luck!