Yes, free-rider is a big issue as well.
Okay, some more on ADC flags.
00+{00-79} sets V=0, with results of {00-79}
00+{7A-7F} sets V=1, with results of {80-85}
00+{80-FF} sets V=0, with results of {80-FF}
01+{00-78} sets V=0
01+{79-7F} sets V=1, with results of {80-86}
01+{80-FF} sets V=0
Very weird. I'm thinking that 7A is being "rounded" up to 80, and 80+ results set V; but then why doesn't 00+80 set it?
The window for overflow grows by one for each increment of the left-hand value.
---
So I think:
overflow = (A >= (0x7a - B)) && (A <= 0x7f);
Which works until 0x0b6f.
0B+6F: A=70, P=2C, V=0