public void SUB(int value)//rewrote phase2
    {
        int res = (Z80.AF.H - value) & 0xff;
        Z80.AF.SetL(SZHVC_sub[(Z80.AF.H << 8) | res]);
        Z80.AF.SetH(res);
    }
   
    /*TODO*////***************************************************************
    /*TODO*/// * SBC	A,n
    /*TODO*/// ***************************************************************/
    /*TODO*///#ifdef X86_ASM
    /*TODO*///#if Z80_EXACT
    /*TODO*///#define SBC(value)												\
    /*TODO*/// asm (															\
    /*TODO*/// " shrb $1,%1           \n"                                     \
    /*TODO*/// " sbbb %2,%0           \n"                                     \
    /*TODO*/// " lahf                 \n"                                     \
    /*TODO*/// " setob %1             \n" /* al = 1 if overflow */            \
    /*TODO*/// " stc                  \n" /* prepare to set N flag */         \
    /*TODO*/// " adcb %1,%1           \n" /* shift to P/V bit position */     \
    /*TODO*/// " addb %1,%1           \n"                                     \
    /*TODO*/// " andb $0xd1,%%ah      \n" /* sign, zero, half carry, carry */ \
    /*TODO*/// " orb %%ah,%1          \n" /* combine with P/V */              \
    /*TODO*/// " movb %0,%%ah         \n" /* get result */                    \
    /*TODO*/// " andb $0x28,%%ah      \n" /* maks flags 5+3 */                \
    /*TODO*/// " orb %%ah,%1          \n" /* put them into flags */           \
    /*TODO*/// :"=r" (_A), "=r" (_F)                                          \
    /*TODO*/// :"r" (value), "1" (_F), "0" (_A)                               \
    /*TODO*/// )
    /*TODO*///#else
    /*TODO*///#define SBC(value)                                              \
    /*TODO*/// asm (															\
    /*TODO*/// " shrb $1,%1           \n"                                     \
    /*TODO*/// " sbbb %2,%0           \n"                                     \
    /*TODO*/// " lahf                 \n"                                     \
    /*TODO*/// " setob %1             \n" /* al = 1 if overflow */            \
    /*TODO*/// " stc                  \n" /* prepare to set N flag */         \
    /*TODO*/// " adcb %1,%1           \n" /* shift to P/V bit position */     \
    /*TODO*/// " addb %1,%1           \n"                                     \
    /*TODO*/// " andb $0xd1,%%ah      \n" /* sign, zero, half carry, carry */ \
    /*TODO*/// " orb %%ah,%1          \n" /* combine with P/V */              \
    /*TODO*/// :"=r" (_A), "=r" (_F)                                          \
    /*TODO*/// :"r" (value), "1" (_F), "0" (_A)                               \
    /*TODO*/// )
    /*TODO*///#endif
    /*TODO*///#else
    /*TODO*///#if BIG_FLAGS_ARRAY
    /*TODO*///#define SBC(value)												\
    /*TODO*///{																\
    /*TODO*///	UINT32 ah = _AFD & 0xff00, c = _AFD & 1;					\
    /*TODO*///	UINT32 res = (UINT8)((ah >> 8) - value - c);				\
    /*TODO*///	_F = SZHVC_sub[(c<<16) | ah | res]; 						\
    /*TODO*///    _A = res;                                                   \
    /*TODO*///}