summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/video/mc6845.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/video/mc6845.cpp')
-rw-r--r--src/devices/video/mc6845.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/devices/video/mc6845.cpp b/src/devices/video/mc6845.cpp
index ec61201648e..fabf80b639e 100644
--- a/src/devices/video/mc6845.cpp
+++ b/src/devices/video/mc6845.cpp
@@ -705,8 +705,9 @@ bool mc6845_device::check_cursor_visible(uint16_t ra, uint16_t line_addr)
}
uint16_t cursor_start_ras = m_cursor_start_ras & 0x1f;
+ uint16_t max_ras_addr = m_max_ras_addr + (MODE_INTERLACE_AND_VIDEO ? m_interlace_adjust : m_noninterlace_adjust);
- if (cursor_start_ras > m_max_ras_addr)
+ if (cursor_start_ras > max_ras_addr)
{
// No cursor possible.
return false;
@@ -714,6 +715,11 @@ bool mc6845_device::check_cursor_visible(uint16_t ra, uint16_t line_addr)
if (cursor_start_ras <= m_cursor_end_ras)
{
+ if (m_cursor_end_ras > max_ras_addr)
+ {
+ // Full cursor.
+ return true;
+ }
// Cursor from start to end inclusive.
return (ra >= cursor_start_ras) && (ra <= m_cursor_end_ras);
}