diff options
author | hap <happppp@users.noreply.github.com> | 2020-08-24 23:53:41 +0200 |
---|---|---|
committer | hap <happppp@users.noreply.github.com> | 2020-08-24 23:53:56 +0200 |
commit | ed4a36eeacd94bbbbcbb710c18b3856f2f6a968e (patch) | |
tree | aae716bacbda3563036b855d0b094bffa73b56dd /src/devices/video | |
parent | 2a50dbf9554ed721c060e103dacbd2c951896537 (diff) |
ef9340: fix drawing over wrong area when service row is disabled
Diffstat (limited to 'src/devices/video')
-rw-r--r-- | src/devices/video/ef9340_1.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/devices/video/ef9340_1.cpp b/src/devices/video/ef9340_1.cpp index b9e595511fd..9cc05ab747b 100644 --- a/src/devices/video/ef9340_1.cpp +++ b/src/devices/video/ef9340_1.cpp @@ -323,9 +323,6 @@ uint8_t ef9340_1_device::ef9341_read( uint8_t command, uint8_t b ) void ef9340_1_device::ef9340_scanline(int vpos) { - for (int i = 0; i < m_tmp_bitmap.width(); i++) - m_tmp_bitmap.pix16(vpos, i) = 0; - vpos -= m_offset_y; if (vpos < 0) return; @@ -360,7 +357,7 @@ void ef9340_1_device::ef9340_scanline(int vpos) { // Service row is disabled for (int i = 0; i < 40 * 8; i++) - m_tmp_bitmap.pix16(vpos, i) = 8; + m_tmp_bitmap.pix16(m_offset_y + vpos, m_offset_x + i) = 8; return; } } @@ -480,6 +477,11 @@ void ef9340_1_device::ef9340_scanline(int vpos) } } } + else + { + for (int i = 0; i < 40 * 8; i++) + m_tmp_bitmap.pix16(m_offset_y + vpos, m_offset_x + i) = 0; + } // determine next h parity if (vpos >= 10 && slice == 9) |