ZZREG_W
ZZREG_W(ZZ9K_AUDIO_CONFIG, conf | ZZ9K_AUDIO_CONFIG_INT_AUDIO);
ZZREG_W(ZZ9K_AUDIO_CONFIG, conf & ~ZZ9K_AUDIO_CONFIG_INT_AUDIO);
ZZREG_W(ZZ9K_CONFIG, ZZ9K_CONFIG_INT_ACK | ZZ9K_CONFIG_INT_ACK_AUDIO);
ZZREG_W(ZZ9K_AUDIO_CONFIG, conf | ZZ9K_AUDIO_CONFIG_INT_AUDIO);
ZZREG_W(ZZ9K_AUDIO_PARAM, param);
ZZREG_W(ZZ9K_AUDIO_VAL, val);
ZZREG_W(ZZ9K_AUDIO_PARAM, 0);
ZZREG_W(ZZ9K_VIDEO_CTRL_DATA_HI, palette >> 16);
ZZREG_W(ZZ9K_VIDEO_CTRL_DATA_LO, palette & 0xFFFF);
ZZREG_W(ZZ9K_VIDEO_CTRL_OP, ZZ9K_OP_PALETTE);
ZZREG_W(ZZ9K_VIDEO_CTRL_OP, ZZ9K_OP_NOP);
ZZREG_W(ZZ9K_VIDEOCAP_VMODE, capture_mode);
ZZREG_W(ZZ9K_BLITTER_USER1, ZZ9K_FEATURE_NONSTANDARD_VSYNC);
ZZREG_W(ZZ9K_SET_FEATURE, 0x0000);
ZZREG_W(ZZ9K_VIDEO_CAPTURE_MODE, ZZ9K_CAPTURE_ON);
ZZREG_W(ZZ9K_BLITTER_X1, 0x0000);
ZZREG_W(ZZ9K_BLITTER_Y1, 0x0000);
ZZREG_W(ZZ9K_BLITTER_X2, 0x0000);
ZZREG_W(ZZ9K_BLITTER_COLORMODE, ZZ9K_COLOR_32BIT);
ZZREG_W(ZZ9K_PAN_PTR_HI, panPtrHi);
ZZREG_W(ZZ9K_PAN_PTR_LO, panPtrLo);
ZZREG_W(ZZ9K_MODE, new_mode);
ZZREG_W(ZZ9K_VIDEO_CAPTURE_MODE, ZZ9K_CAPTURE_OFF);
ZZREG_W(ZZ9K_BLITTER_X1, 0x0000);
ZZREG_W(ZZ9K_BLITTER_Y1, 0x0000);
ZZREG_W(ZZ9K_BLITTER_X2, 0x0000);
ZZREG_W(ZZ9K_BLITTER_COLORMODE, color_mode);
ZZREG_W(ZZ9K_BLITTER_SRC_HI, 0x0000);
ZZREG_W(ZZ9K_BLITTER_SRC_LO, 0x0000);
ZZREG_W(ZZ9K_BLITTER_DST_HI, 0x0000);
ZZREG_W(ZZ9K_BLITTER_DST_LO, 0x0000);
ZZREG_W(ZZ9K_BLITTER_SPLIT_POS, 0x0000);
ZZREG_W(ZZ9K_PAN_PTR_HI, 0x0000);
ZZREG_W(ZZ9K_PAN_PTR_LO, 0x0000);
ZZREG_W(ZZ9K_MODE, new_mode);
ZZREG_W(ZZ9K_BLITTER_X1, x);
ZZREG_W(ZZ9K_BLITTER_Y1, y);
ZZREG_W(ZZ9K_BLITTER_X2, w);
ZZREG_W(ZZ9K_BLITTER_Y2, h);
ZZREG_W(ZZ9K_BLITTER_ROW_PITCH, sc->sc_stride >> 2);
ZZREG_W(ZZ9K_BLITTER_COLORMODE, sc->sc_colormode);
ZZREG_W(ZZ9K_BLITTER_RGB_HI, color >> 16);
ZZREG_W(ZZ9K_BLITTER_RGB_LO, color & 0xFFFF);
ZZREG_W(ZZ9K_BLITTER_OP_FILLRECT, 0x00FF);
ZZREG_W(ZZ9K_BLITTER_X1, x);
ZZREG_W(ZZ9K_BLITTER_Y1, y);
ZZREG_W(ZZ9K_BLITTER_X2, w);
ZZREG_W(ZZ9K_BLITTER_Y2, h);
ZZREG_W(ZZ9K_BLITTER_X3, xs);
ZZREG_W(ZZ9K_BLITTER_Y3, ys);
ZZREG_W(ZZ9K_BLITTER_ROW_PITCH, sc->sc_stride >> 2);
ZZREG_W(ZZ9K_BLITTER_COLORMODE, (0xFF << 8) | sc->sc_colormode);
ZZREG_W(ZZ9K_BLITTER_OP_COPYRECT, ZZ9K_OPT_REGULAR);
ZZREG_W(ZZ9K_CONFIG, ZZREG_R(ZZ9K_CONFIG) | ZZ9K_CONFIG_INT_ETH);
ZZREG_W(ZZ9K_CONFIG, ZZREG_R(ZZ9K_CONFIG) & ~ZZ9K_CONFIG_INT_ETH);
ZZREG_W(ZZ9K_ETH_TX, size);
ZZREG_W(ZZ9K_CONFIG, conf & ~ZZ9K_CONFIG_INT_ETH); /* disable INT */
ZZREG_W(ZZ9K_CONFIG, ZZ9K_CONFIG_INT_ACK | ZZ9K_CONFIG_INT_ACK_ETH);
ZZREG_W(ZZ9K_ETH_RX, 1); /* discard packet */
ZZREG_W(ZZ9K_CONFIG, conf); /* restore interrupt */
ZZREG_W(ZZ9K_ETH_RX, 1); /* discard packet */
ZZREG_W(ZZ9K_CONFIG, conf); /* restore interrupt */
ZZREG_W(ZZ9K_ETH_RX, 1); /* packet served */
ZZREG_W(ZZ9K_CONFIG, conf); /* restore interrupt */
ZZREG_W(ZZ9K_ETH_MAC_HI, (mac[0] << 8) | mac[1]);
ZZREG_W(ZZ9K_ETH_MAC_MD, (mac[2] << 8) | mac[3]);
ZZREG_W(ZZ9K_ETH_MAC_LO, (mac[4] << 8) | mac[5]);