I have found a problem with the C167CRr2 DIP for DAvE. The #defines in MAIN.H generated by DAvE use a bit-field structure to access SFR bits, rather than just using sbit. This causes a statement such as S0TBIC_S0TBIE = 1 to generate code like MOV R4,0F19CH BSET R4.6 MOV 0F19CH,R4 rather than EXTR #01H BSET S0TBIE The problem this was giving me was that if the S0TBIR bit becomes set, it can be lost when the second MOV instruction is executed. I found that the C167 DIP just relies on the reg167.h file, and does not use the bit-field structures. This is how I have worked around the problem, but it will become a pain if I need to use any of the C167CR functionality which does not exist on the basic C167. I have reported this problem to Infineon who are looking into it, but just thought I would mention it in case it helps anyone, or anyone has any alternative suggestions.