public void PUSH(int reg)//reg should be D value (e.g Z80.PC.D)
    {
        Z80.SP.SetD((Z80.SP.D - 2) & 0xFFFF); // _SP -= 2;
        WM16(Z80.SP.D, reg); //WM16( _SPD, &Z80.SR );
    }
    /*TODO*////***************************************************************
    /*TODO*/// * JP
    /*TODO*/// ***************************************************************/
    /*TODO*///#if BUSY_LOOP_HACKS
    /*TODO*///#define JP {													\
    /*TODO*///	unsigned oldpc = _PCD-1;									\
    /*TODO*///	_PCD = ARG16(); 											\
    /*TODO*///	change_pc16(_PCD);											\
    /*TODO*///    /* speed up busy loop */                                    \
    /*TODO*///	if( _PCD == oldpc ) 										\
    /*TODO*///	{															\
    /*TODO*///		if( !after_EI ) 										\
    /*TODO*///			BURNODD( z80_ICount, 1, 10 );						\
    /*TODO*///	}															\
    /*TODO*///	else														\
    /*TODO*///	{															\
    /*TODO*///		UINT8 op = cpu_readop(_PCD);							\
    /*TODO*///		if( _PCD == oldpc-1 )									\
    /*TODO*///		{														\
    /*TODO*///			/* NOP - JP $-1 or EI - JP $-1 */					\
    /*TODO*///			if ( op == 0x00 || op == 0xfb ) 					\
    /*TODO*///			{													\
    /*TODO*///				if( !after_EI ) 								\
    /*TODO*///					BURNODD( z80_ICount-4, 2, 4+10 );			\
    /*TODO*///			}													\
    /*TODO*///		}														\
    /*TODO*///		else													\
    /*TODO*///		/* LD SP,#xxxx - JP $-3 (Galaga) */ 					\
    /*TODO*///		if( _PCD == oldpc-3 && op == 0x31 ) 					\
    /*TODO*///		{														\
    /*TODO*///			if( !after_EI ) 									\
    /*TODO*///				BURNODD( z80_ICount-10, 2, 10+10 ); 			\
    /*TODO*///		}														\
    /*TODO*///	}															\
    /*TODO*///}
    /*TODO*///#else
    /*TODO*///#define JP {													\
    /*TODO*///	_PCD = ARG16(); 											\
    /*TODO*///	change_pc16(_PCD);											\
    /*TODO*///}
    /*TODO*///#endif
    /*TODO*///
    /*TODO*////***************************************************************
    /*TODO*/// * JP_COND
    /*TODO*/// ***************************************************************/
    /*TODO*///
    /*TODO*///#define JP_COND(cond)											\
    /*TODO*///	if( cond )													\
    /*TODO*///	{															\
    /*TODO*///		_PCD = ARG16(); 										\
    /*TODO*///		change_pc16(_PCD);										\
    /*TODO*///	}															\
    /*TODO*///	else														\
    /*TODO*///	{															\
    /*TODO*///		_PC += 2;												\
    /*TODO*///    }