Found out that z80asm has rather finicky operator precedence rules. -x+y does not work, but (-x)+y does. No binary change.