The Z80 does not do 16-bit maths pretty quickly. It is an 8-bit chip and it does arithmetic on an 8-bit ALU. It does 8-bit arithmetic operations in 4 T-states, and 3 of those are the instruction fetch and decode cycle. It does "inc hl" in 6 T-states and "add hl,bc" in 11 T-states (only 3 of which are needed to fetch and decode the instruction in each case). It takes 5 T-states just to add the displacement of a relative jump to the program counter. It takes 19 T-states to do even the quickest operation on (ix+d) (that's 7 for the important part of the instruction, 4 to decode the DD byte, 3 to fetch the value of d, and a whopping 5 just to add d to ix). Given that in a 16-bit arithmetic operation it is the upper 8 bits of the result that are formed last, it is hardly suprising that the C, S, H, V and two unused flags of the F register are set from these bits. The Z80 is an 8-bit chip. Ian Collier