diff options
Diffstat (limited to 'src/devices/bus/hp_dio/hp98544.cpp')
-rw-r--r-- | src/devices/bus/hp_dio/hp98544.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/devices/bus/hp_dio/hp98544.cpp b/src/devices/bus/hp_dio/hp98544.cpp index db790a89977..5112ace8781 100644 --- a/src/devices/bus/hp_dio/hp98544.cpp +++ b/src/devices/bus/hp_dio/hp98544.cpp @@ -128,11 +128,19 @@ WRITE16_MEMBER(dio16_98544_device::rom_w) uint32_t dio16_98544_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - for (int y = 0; y < 768; y++) { - uint32_t *scanline = &bitmap.pix32(y); - for (int x = 0; x < 1024; x++) - *scanline++ = m_vram[y * 1024 + x] ? rgb_t(255,255,255) : rgb_t(0, 0, 0); - } - return 0; + int startx, starty, endx, endy; + + m_topcat->get_cursor_pos(&startx, &starty, &endx, &endy); + + for (int y = 0; y < m_v_pix; y++) { + uint32_t *scanline = &bitmap.pix32(y); + for (int x = 0; x < 1024; x++) { + uint8_t tmp = m_vram[y * m_h_pix + x]; + if (y >= starty && y <= endy && x >= startx && x <= endx) + tmp |= 0xff; + *scanline++ = tmp ? rgb_t(255,255,255) : rgb_t(0, 0, 0); + } + } + return 0; } |