public void CHECK_IRQ_LINES() {
        if (konamilog != null) {
            fprintf(konamilog, "konami#%d irq_lines_en :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(), konami.pc, konami.ppc, A(), B(), konami.d, konami.dp, konami.u, konami.s, konami.x, konami.y, konami.cc, ea);
        }
        if (konami.irq_state[KONAMI_IRQ_LINE] != CLEAR_LINE || konami.irq_state[KONAMI_FIRQ_LINE] != CLEAR_LINE) {
            konami.int_state &= ~KONAMI_SYNC; /* clear SYNC flag */

            if (konamilog != null) {
                fprintf(konamilog, "konami#%d irq_lines_0 :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(), konami.pc, konami.ppc, A(), B(), konami.d, konami.dp, konami.u, konami.s, konami.x, konami.y, konami.cc, ea);
            }
        }
        if (konami.irq_state[KONAMI_FIRQ_LINE] != CLEAR_LINE && ((konami.cc & CC_IF) == 0)) {
            /* fast IRQ */
            /* HJB 990225: state already saved by CWAI? */
            if ((konami.int_state & KONAMI_CWAI) != 0) {
                konami.int_state &= ~KONAMI_CWAI;  /* clear CWAI */

                konami.extra_cycles += 7;		 /* subtract +7 cycles */

            } else {
                konami.cc &= ~CC_E;				/* save 'short' state */

                PUSHWORD(konami.pc);
                PUSHBYTE(konami.cc);
                konami.extra_cycles += 10;	/* subtract +10 cycles */

            }
            konami.cc |= CC_IF | CC_II;			/* inhibit FIRQ and IRQ */

            konami.pc = RM16(0xfff6);
            change_pc(konami.pc);
            konami.irq_callback.handler(KONAMI_FIRQ_LINE);
            if (konamilog != null) {
                fprintf(konamilog, "konami#%d irq_lines_a :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(), konami.pc, konami.ppc, A(), B(), konami.d, konami.dp, konami.u, konami.s, konami.x, konami.y, konami.cc, ea);
            }
        } else if (konami.irq_state[KONAMI_IRQ_LINE] != CLEAR_LINE && ((konami.cc & CC_II) == 0)) {
            /* standard IRQ */
            /* HJB 990225: state already saved by CWAI? */
            if ((konami.int_state & KONAMI_CWAI) != 0) {
                konami.int_state &= ~KONAMI_CWAI;  /* clear CWAI flag */

                konami.extra_cycles += 7;		 /* subtract +7 cycles */

            } else {
                konami.cc |= CC_E; 				/* save entire state */

                PUSHWORD(konami.pc);
                PUSHWORD(konami.u);
                PUSHWORD(konami.y);
                PUSHWORD(konami.x);
                PUSHBYTE(konami.dp);
                PUSHBYTE(B());
                PUSHBYTE(A());
                PUSHBYTE(konami.cc);
                konami.extra_cycles += 19;	 /* subtract +19 cycles */

            }
            konami.cc |= CC_II;					/* inhibit IRQ */

            konami.pc = RM16(0xfff8);
            change_pc(konami.pc);
            konami.irq_callback.handler(KONAMI_IRQ_LINE);
            if (konamilog != null) {
                fprintf(konamilog, "konami#%d irq_lines_b :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(), konami.pc, konami.ppc, A(), B(), konami.d, konami.dp, konami.u, konami.s, konami.x, konami.y, konami.cc, ea);
            }
        }

    }