aha... I now see what my problem is.. I thought INCFSZ worked in a slightly different way. I thought that it did the increment, then tested the zero flag (a reasonable assumption, don't you think?). Now I see that it does not test the zero flag, it is to do with the result from the increment operation (which does not modify the flags anyway) This controller is weird, what with this and the carry flag working backwards for subtraction, I am getting confused :-)