See also https://www.righto.com/2012/12/the-6502-overflow-flag-explai...
I also note that you have the same code copy/pasted in every ALU operation which might be better expressed in one location for maintenance reasons.