public void CPIR() 
    {                                                  
    	z80_ICount[0] -= 5;														
    	Z80.PC.AddD(-2);//_PC -= 2;													
        do                                                          
    	{															
    		CPI();													
    		if( Z80.BC.D !=0 && (Z80.AF.L & ZF)==0 ) 								
    		{														
                    if( z80_ICount[0] > 0 )								
                    {                                                   
                         Z80.R = (Z80.R + 2) & 0xFF;//_R += 2;  /* increment R twice */				
                         z80_ICount[0] -= 21; 										
                     }													
                    else break;                                         
                }                                                       
    		else													
    		{														
                    Z80.PC.AddD(2);//_PC += 2;											
                    z80_ICount[0] += 5;                                    
                    break;                                              
    		}														
    	} while( z80_ICount[0] > 0 );									
    }
    /*TODO*///#else
    /*TODO*///#define CPIR CPI; if( _BC && !(_F & ZF) ) { _PC -= 2; CY(5); }
    /*TODO*///#endif
    /*TODO*///
    /*TODO*////***************************************************************
    /*TODO*/// * INIR
    /*TODO*/// ***************************************************************/
    /*TODO*///#if REPEAT_AT_ONCE
    /*TODO*///#define INIR {                                                  \
    /*TODO*///	CY(5);														\
    /*TODO*///	_PC -= 2;													\
    /*TODO*///    do                                                          \
    /*TODO*///	{															\
    /*TODO*///		INI;													\
    /*TODO*///		if( _B )												\
    /*TODO*///		{														\
    /*TODO*///			if( z80_ICount > 0 )								\
    /*TODO*///            {                                                   \
    /*TODO*///				_R += 2;  /* increment R twice */				\
    /*TODO*///				CY(21); 										\
    /*TODO*///			}													\
    /*TODO*///            else break;                                         \
    /*TODO*///        }                                                       \
    /*TODO*///		else													\
    /*TODO*///		{														\
    /*TODO*///			_PC += 2;											\
    /*TODO*///            z80_ICount += 5;                                    \
    /*TODO*///            break;                                              \
    /*TODO*///		}														\
    /*TODO*///	} while( z80_ICount > 0 );									\
    /*TODO*///}
    /*TODO*///#else
    /*TODO*///#define INIR INI; if( _B ) { _PC -= 2; CY(5); }
    /*TODO*///#endif
    /*TODO*///
    /*TODO*////***************************************************************
    /*TODO*/// * OTIR
    /*TODO*/// ***************************************************************/
    /*TODO*///#if REPEAT_AT_ONCE
    /*TODO*///#define OTIR {                                                  \
    /*TODO*///	CY(5);														\
    /*TODO*///	_PC -= 2;													\
    /*TODO*///    do                                                          \
    /*TODO*///	{															\
    /*TODO*///		OUTI;													\
    /*TODO*///		if( _B	)												\
    /*TODO*///		{														\
    /*TODO*///			if( z80_ICount > 0 )								\
    /*TODO*///            {                                                   \
    /*TODO*///				_R += 2;  /* increment R twice */				\
    /*TODO*///				CY(21); 										\
    /*TODO*///			}													\
    /*TODO*///            else break;                                         \
    /*TODO*///        }                                                       \
    /*TODO*///		else													\
    /*TODO*///		{														\
    /*TODO*///			_PC += 2;											\
    /*TODO*///            z80_ICount += 5;                                    \
    /*TODO*///            break;                                              \
    /*TODO*///		}														\
    /*TODO*///	} while( z80_ICount > 0 );									\
    /*TODO*///}
    /*TODO*///#else
    /*TODO*///#define OTIR OUTI; if( _B ) { _PC -= 2; CY(5); }