public void LDDR()
    {
        CY(5);
        Z80.PC.AddD(-2);
        do
        {
            LDD();
            if(Z80.BC.D!=0)
            {
                if(z80_ICount[0] >0)
                {
                    Z80.R = (Z80.R + 2) & 0xFF; /* increment R twice */
                    CY(21);
                }
                else break;
            }
            else
            {
                Z80.PC.AddD(2);
                z80_ICount[0] +=5;
                break;
            }
        }while(z80_ICount[0]>0);
    }
    /*TODO*///#if REPEAT_AT_ONCE
    /*TODO*///#define LDDR {                                                  \
    /*TODO*///	CY(5);														\
    /*TODO*///	_PC -= 2;													\
    /*TODO*///    do                                                          \
    /*TODO*///	{															\
    /*TODO*///		LDD;													\
    /*TODO*///		if( _BC )												\
    /*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 LDDR LDD; if( _BC ) { _PC -= 2; CY(5); }
    /*TODO*///#endif
    /*TODO*///
    /*TODO*////***************************************************************
    /*TODO*/// * CPDR
    /*TODO*/// ***************************************************************/
    /*TODO*///#if REPEAT_AT_ONCE
    /*TODO*///#define CPDR {                                                  \
    /*TODO*///	CY(5);														\
    /*TODO*///	_PC -= 2;													\
    /*TODO*///    do                                                          \
    /*TODO*///	{															\
    /*TODO*///		CPD;													\
    /*TODO*///		if( _BC && !(_F & ZF) ) 								\
    /*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 CPDR CPD; if( _BC && !(_F & ZF) ) { _PC -= 2; CY(5); }