crtc_ega: latch the row preset

This commit is contained in:
cracyc 2024-03-31 18:39:55 -05:00
parent af2c089e75
commit 033a996db6
2 changed files with 5 additions and 1 deletions

View file

@ -105,7 +105,7 @@ void crtc_ega_device::register_w(uint8_t data)
m_vert_blank_start = ((data & 0x08) << 5) | (m_vert_blank_start & 0x00ff);
m_line_compare = ((data & 0x10) << 4) | (m_line_compare & 0x00ff);
break;
case 0x08: m_preset_row_scan = data & 0x1f;
case 0x08: m_preset_row_latch = data & 0x1f;
break;
case 0x09: m_max_ras_addr = data & 0x1f;
break;
@ -272,7 +272,10 @@ void crtc_ega_device::set_vblank(int state)
if (!m_irq_enable)
m_res_out_irq_cb(m_vblank);
if (state)
{
m_disp_start_addr = m_start_addr_latch;
m_preset_row_scan = m_preset_row_latch;
}
}
}

View file

@ -130,6 +130,7 @@ private:
/* other internal state */
uint8_t m_register_address_latch;
uint16_t m_start_addr_latch;
uint8_t m_preset_row_latch;
bool m_cursor_state; /* 0 = off, 1 = on */
uint8_t m_cursor_blink_count;
int m_hpixels_per_column; /* number of pixels per video memory address */