CRTC2R
CRTC2W(PIXEL, ((CRTC2R(PIXEL) & 0xc7) | 0x80));
CRTC2W(LCD, (CRTC2R(LCD) & 0xfe));
CRTC2W(VSYNCE, (CRTC2R(VSYNCE) & 0x7f));
CRTC2W(VSYNCE, ((CRTC2R(VSYNCE) & 0xf0) | (vsync_e & 0x0f)));
CRTC2W(HEB, (CRTC2R(HEB) & 0xe0) |
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) & 0xfb));
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) | 0x04));
if (!(si->ps.monitors & CRTC2_TMDS)) CRTC2W(PIXEL, (CRTC2R(PIXEL) & 0x7f));
LOG(2,("CRTC2: FP_HTIMING reg readback: $%02x\n", CRTC2R(FP_HTIMING)));
LOG(2,("CRTC2: FP_VTIMING reg readback: $%02x\n", CRTC2R(FP_VTIMING)));
CRTC2W(PIXEL, ((CRTC2R(PIXEL) & 0xfc) | viddelay));
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) & 0x7f));
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) | 0x80));
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) & 0xbf));
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) | 0x40));
CRTC2W(REPAINT0, ((CRTC2R(REPAINT0) & 0x1f) | ((offset & 0x0700) >> 3)));
CRTC2W(CURCTL0, (CRTC2R(CURCTL0) | 0x01));
CRTC2W(CURCTL0, (CRTC2R(CURCTL0) & 0xfe));
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) & 0xbf));
if (!(si->ps.slaved_tmds2)) CRTC2W(PIXEL, (CRTC2R(PIXEL) & 0x03));
if (si->ps.slaved_tmds2) CRTC2W(LCD, (CRTC2R(LCD) | 0x01));
CRTC2W(VSYNCE ,(CRTC2R(VSYNCE) & 0x7f));
LOG(2,("CRTC2: PIXEL register: $%02x\n", CRTC2R(PIXEL)));
LOG(2,("CRTC2: LCD register: $%02x\n", CRTC2R(LCD)));
LOG(2,("CRTC2: register $59: $%02x\n", CRTC2R(0x59)));
LOG(2,("CRTC2: register $9f: $%02x\n", CRTC2R(0x9f)));
slaved_for_dev2 = (CRTC2R(PIXEL) & 0x80);
tvout2 = !(CRTC2R(LCD) & 0x01);
CRTC2W(VSYNCE, (CRTC2R(VSYNCE) & 0x7f));
CRTC2W(VSYNCE, ((CRTC2R(VSYNCE) & 0xf0) | (vsync_e & 0x0f)));
CRTC2W(HEB, (CRTC2R(HEB) & 0xe0) |
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) & 0xfb));
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) | 0x04));
if (!si->ps.tmds2_active) CRTC2W(PIXEL, (CRTC2R(PIXEL) & 0x7f));
LOG(2,("CRTC2: FP_HTIMING reg readback: $%02x\n", CRTC2R(FP_HTIMING)));
LOG(2,("CRTC2: FP_VTIMING reg readback: $%02x\n", CRTC2R(FP_VTIMING)));
CRTC2W(PIXEL, ((CRTC2R(PIXEL) & 0xfc) | viddelay));
CRTC2W(0x59, (CRTC2R(0x59) | 0x01));
CRTC2W(0x59, (CRTC2R(0x59) & 0xfe));
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) & 0x7f));
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) | 0x80));
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) & 0xbf));
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) | 0x40));
*h = !(CRTC2R(REPAINT1) & 0x80);
*v = !(CRTC2R(REPAINT1) & 0x40);
CRTC2W(REPAINT0, ((CRTC2R(REPAINT0) & 0x1f) | ((offset & 0x0700) >> 3)));
CRTC2W(CURCTL0, (CRTC2R(CURCTL0) | 0x01));
CRTC2W(CURCTL0, (CRTC2R(CURCTL0) & 0xfe));
CRTC2W(VSYNCE ,(CRTC2R(VSYNCE) & 0x7f));
LOG(2,("CRTC2: PIXEL register: $%02x\n", CRTC2R(PIXEL)));
LOG(2,("CRTC2: LCD register: $%02x\n", CRTC2R(LCD)));
LOG(2,("CRTC2: register $59: $%02x\n", CRTC2R(0x59)));
LOG(2,("CRTC2: register $9f: $%02x\n", CRTC2R(0x9f)));
slaved_for_dev2 = (CRTC2R(PIXEL) & 0x80);
tvout2 = !(CRTC2R(LCD) & 0x01);
CRTC2W(VSYNCE, (CRTC2R(VSYNCE) & 0x7f));
CRTC2W(VSYNCE, ((CRTC2R(VSYNCE) & 0xf0) | (vsync_e & 0x0f)));
CRTC2W(HEB, (CRTC2R(HEB) & 0xe0) |
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) & 0xfb));
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) | 0x04));
if (!si->ps.tmds2_active) CRTC2W(PIXEL, (CRTC2R(PIXEL) & 0x7f));
LOG(2,("CRTC2: FP_HTIMING reg readback: $%02x\n", CRTC2R(FP_HTIMING)));
LOG(2,("CRTC2: FP_VTIMING reg readback: $%02x\n", CRTC2R(FP_VTIMING)));
CRTC2W(PIXEL, ((CRTC2R(PIXEL) & 0xfc) | viddelay));
CRTC2W(0x59, (CRTC2R(0x59) | 0x01));
CRTC2W(0x59, (CRTC2R(0x59) & 0xfe));
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) & 0x7f));
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) | 0x80));
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) & 0xbf));
CRTC2W(REPAINT1, (CRTC2R(REPAINT1) | 0x40));
*h = !(CRTC2R(REPAINT1) & 0x80);
*v = !(CRTC2R(REPAINT1) & 0x40);
CRTC2W(REPAINT0, ((CRTC2R(REPAINT0) & 0x1f) | ((offset & 0x0700) >> 3)));
CRTC2W(CURCTL0, (CRTC2R(CURCTL0) | 0x01));
CRTC2W(CURCTL0, (CRTC2R(CURCTL0) & 0xfe));
CRTC2W(VSYNCE ,(CRTC2R(VSYNCE) & 0x7f));
LOG(2,("CRTC2: PIXEL register: $%02x\n", CRTC2R(PIXEL)));
LOG(2,("CRTC2: LCD register: $%02x\n", CRTC2R(LCD)));
LOG(2,("CRTC2: register $59: $%02x\n", CRTC2R(0x59)));
LOG(2,("CRTC2: register $9f: $%02x\n", CRTC2R(0x9f)));
slaved_for_dev2 = (CRTC2R(PIXEL) & 0x80);
tvout2 = !(CRTC2R(LCD) & 0x01);