public void daa()//suapicious recheck
    {
    	int/*UINT8*/ msn, lsn;
    	int/*UINT16*/ t, cf = 0;
    	msn = m6809.a & 0xf0; 
        lsn = m6809.a & 0x0f;
    	if( lsn>0x09 || (m6809.cc & CC_H)!=0) cf |= 0x06;
    	if( msn>0x80 && lsn>0x09 ) cf |= 0x60;
    	if( msn>0x90 || (m6809.cc & CC_C)!=0) cf |= 0x60;
    	t = cf + m6809.a & 0xFFFF;//should be unsigned???
    	CLR_NZV(); /* keep carry from previous operation */
    	SET_NZ8(/*(UINT8)*/t & 0xFF); 
        SET_C8(t);
    	m6809.a = t & 0xFF;
        if(m6809log!=null) fprintf(m6809log,"M6809#%d daa :PC:%d,PPC:%d,A:%d,B:%d,D:%d,DP:%d,U:%d,S:%d,X:%d,Y:%d,CC:%d,EA:%d\n", cpu_getactivecpu(),m6809.pc,m6809.ppc,m6809.a,m6809.b,getDreg(),m6809.dp,m6809.u,m6809.s,m6809.x,m6809.y,m6809.cc,ea);
    }