OP.AND in Z80IL.py uses flags="z", while OP.OR and OP.XOR use flags="*".
The Z80 AND also clears C (and N, and sets H). This matters because AND A / OR A is the idiomatic way to clear carry before SBC HL,rr — with only Z modelled, the carry clear is invisible and the following SBC looks like it depends on a stale flag.
139 sites in one test binary.
OP.ANDinZ80IL.pyusesflags="z", whileOP.ORandOP.XORuseflags="*".The Z80
ANDalso clears C (and N, and sets H). This matters becauseAND A/OR Ais the idiomatic way to clear carry beforeSBC HL,rr— with only Z modelled, the carry clear is invisible and the followingSBClooks like it depends on a stale flag.139 sites in one test binary.