opcode op_c3 = new opcode() { public void handler() /* JP  a */ 
    { 
        Z80.PC.SetD(ARG16());											
    	change_pc16(Z80.PC.D);												
 //above is a speedup for the JR instruction first check if it work correctly and then we will see :D (shadow)      
        /*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*///	}															\
    }}