public override void WriteEXP(int addr, byte value) { addr &= 0xF800; switch (addr) { case 0x0800: audio.WriteData(value); break; case 0x1000: irq_counter = (irq_counter & 0xFF00) | value; irq_pending = false; SyncIRQ(); break; case 0x1800: { irq_counter = (irq_counter & 0x00FF) | (((value & 0x7F) << 8)); bool last_enabled = irq_enabled; irq_enabled = value.Bit(7); irq_pending = false; SyncIRQ(); break; } } }