public void handler(int offset, int data) {
            /* write latch */
            if (((port2 & 0x01) != 0) && ((data & 0x01) == 0)) {
                /* control or data port? */
                if ((port2 & 0x04) != 0) {
                    /* PSG 0 or 1? */
                    if ((port2 & 0x10) != 0) {
                        AY8910_control_port_1_w.handler(0, port1);
                    } else if ((port2 & 0x08) != 0) {
                        AY8910_control_port_0_w.handler(0, port1);
                    }
                } else {
                    /* PSG 0 or 1? */
                    if ((port2 & 0x10) != 0) {
                        AY8910_write_port_1_w.handler(0, port1);
                    } else if ((port2 & 0x08) != 0) {
                        AY8910_write_port_0_w.handler(0, port1);
                    }
                }
            }
            port2 = data;
        }