@Override
    public void set_irq_line(int irqline, int linestate) {
 
        if(m6502log!=null) fprintf(m6502log,"M6502#%d before_irqline :PC:%d,PPC:%d,SP:%d,ZP:%d,EA:%d,A:%d,X:%d,Y:%d,P:%d,p_irq:%d,a_c:%d,nmi:%d,irq:%d,so:%d\n", cpu_getactivecpu(),m6502.pc.D,m6502.ppc.D,m6502.sp.D,m6502.zp.D,m6502.ea.D,m6502.a,m6502.x,m6502.y,m6502.p,m6502.pending_irq,m6502.after_cli,m6502.nmi_state,m6502.irq_state,m6502.so_state);          
    
	if( irqline == M6502_SET_OVERFLOW )
	{
		if( m6502.so_state!=0 && linestate==0 )
		{
			if(m6502log!=null) fprintf(m6502log,"M6502#%d set overflow\n", cpu_getactivecpu());
			m6502.p = (m6502.p | F_V)&0xFF; //P|=F_V;
		}
		m6502.so_state=linestate;
                       if(m6502log!=null) fprintf(m6502log,"M6502#%d after_irqline :PC:%d,PPC:%d,SP:%d,ZP:%d,EA:%d,A:%d,X:%d,Y:%d,P:%d,p_irq:%d,a_c:%d,nmi:%d,irq:%d,so:%d\n", cpu_getactivecpu(),m6502.pc.D,m6502.ppc.D,m6502.sp.D,m6502.zp.D,m6502.ea.D,m6502.a,m6502.x,m6502.y,m6502.p,m6502.pending_irq,m6502.after_cli,m6502.nmi_state,m6502.irq_state,m6502.so_state);          
    
		return;
	}
	m6502.irq_state = linestate;
	if( linestate != CLEAR_LINE )
	{
		if(m6502log!=null) fprintf(m6502log, "M6502#%d set_irq_line(ASSERT)\n", cpu_getactivecpu());
		m6502.pending_irq = 1;
	}
        if(m6502log!=null) fprintf(m6502log,"M6502#%d after_irqline :PC:%d,PPC:%d,SP:%d,ZP:%d,EA:%d,A:%d,X:%d,Y:%d,P:%d,p_irq:%d,a_c:%d,nmi:%d,irq:%d,so:%d\n", cpu_getactivecpu(),m6502.pc.D,m6502.ppc.D,m6502.sp.D,m6502.zp.D,m6502.ea.D,m6502.a,m6502.x,m6502.y,m6502.p,m6502.pending_irq,m6502.after_cli,m6502.nmi_state,m6502.irq_state,m6502.so_state);          
    
    }