;unknown author, please step forward
comf var,f ;Complement all bytes
comf var+1,f
comf var+2,f
comf var+3,f
incf var,f ;Inc. low byte always
skpnz ;Skip if no carry to higher bytes
incf var+1,f ;Carry to next byte
skpnz
incf var+2,f
skpnz
incf var+3,f
Regulus Berdin says: This reduces the number of execution cycles if some bytes are zero and called as subroutine.
negate:
comf var,f
comf var+1,f
...
incfsz var,f
return
incfsz var+1,f
return
...
incf var+N,f
return