summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/video/tms9927.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/video/tms9927.cpp')
-rw-r--r--src/devices/video/tms9927.cpp20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/devices/video/tms9927.cpp b/src/devices/video/tms9927.cpp
index 3380ad2c48c..c5653c88b13 100644
--- a/src/devices/video/tms9927.cpp
+++ b/src/devices/video/tms9927.cpp
@@ -293,22 +293,10 @@ READ_LINE_MEMBER(tms9927_device::bl_r)
}
-bool tms9927_device::screen_reset()
-{
- return m_reset;
-}
-
-
-int tms9927_device::upscroll_offset()
-{
- return m_start_datarow;
-}
-
-
-bool tms9927_device::cursor_bounds(rectangle &bounds)
+bool tms9927_device::cursor_bounds(rectangle &bounds) const
{
int cursorx = CURSOR_CHAR_ADDRESS;
- int cursory = CURSOR_ROW_ADDRESS;
+ int cursory = (CURSOR_ROW_ADDRESS + DATA_ROWS_PER_FRAME - m_start_datarow) % DATA_ROWS_PER_FRAME;
bounds.min_x = cursorx * m_hpixels_per_column;
bounds.max_x = bounds.min_x + m_hpixels_per_column - 1;
@@ -371,8 +359,12 @@ void tms9927_device::recompute_parameters(bool postload)
m_hsyn = false;
if (!m_write_hsyn.isnull())
+ {
+ m_write_hsyn(0);
m_hsync_timer->adjust(screen().time_until_pos(m_vsyn_start, m_hsyn_start));
+ }
m_vsyn = false;
+ m_write_vsyn(0);
m_vsync_timer->adjust(screen().time_until_pos(m_vsyn_start, m_hsyn_start));
}